Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
FP
irisatomic
Commits
0fa11100
Commit
0fa11100
authored
Sep 20, 2016
by
Zhen Zhang
Browse files
hack loop_spec
parent
fce22a5f
Changes
1
Hide whitespace changes
Inline
Sidebyside
srv.v
View file @
0fa11100
...
@@ 316,10 +316,29 @@ Section proof.
...
@@ 316,10 +316,29 @@ Section proof.
wp_let
.
wp_let
.
wp_load
.
wp_let
.
wp_let
.
wp_load
.
by
iClear
"~5"
.
by
iClear
"~5"
.
Admitted
.
Admitted
.
Lemma
loop_spec
Φ
(
p
s
lk
:
loc
)
(
f
:
val
)
Q
(
γ
hd
γ
gn
γ
2
γ
lk
:
gname
)
γ
s
:
heapN
⊥
N
→
heap_ctx
★
inv
N
(
srv_inv
γ
hd
γ
gn
γ
2
s
Q
)
★
inv
N
(
lock_inv
γ
lk
lk
(
own
γ
2
(
Excl
())))
★
own
γ
gn
(
◯
{
[
p
:=
γ
s
]
}
)
★
□
(
∀
x
:
val
,
WP
f
x
{{
v
,
■
Q
x
v
}}
)
%
I
★
(
∀
x
y
,
■
Q
x
y
→
Φ
y
)
(
*
there
should
be
some
constraints
on
x
*
)
⊢
WP
loop
#
p
f
#
s
#
lk
{{
Φ
}}
.
Proof
.
iIntros
(
HN
)
"(#Hh & #? & #? & #? & #? & HΦ)"
.
iL
ö
b
as
"IH"
.
wp_rec
.
repeat
wp_let
.
(
*
we
should
be
able
to
know
p
is
something
by
open
the
invariant
and
using
the
fragment
*
)
(
*
but
for
now
we
will
move
fast
*
)
iAssert
(
p_inv
'
γ
2
γ
s
p
Q
)
as
"Hp"
.
{
admit
.
}
rewrite
/
p_inv
'
.
destruct
γ
s
as
[[[[
γ
x
γ
1
]
γ
3
]
γ
4
]

];
last
by
iExFalso
.
iDestruct
"Hp"
as
"[Hp  [Hp  [ Hp  Hp]]]"
.

(
*
I
should
be
able
to
refuse
this
case
*
)
admit
.

admit
.

admit
.

iDestruct
"Hp"
as
(
x
y
)
"(Hp & Hx & % & Ho1 & Ho4)"
.
(
*
there
should
be
some
token
exchange
*
)
wp_load
.
wp_match
.
by
iApply
"HΦ"
.
Admitted
.
\ No newline at end of file
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment