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
Iris
examples
Commits
b9c66be3
Commit
b9c66be3
authored
Sep 12, 2016
by
Zhen Zhang
Browse files
stronger empty casE
parent
445187e9
Changes
1
Hide whitespace changes
Inline
Sidebyside
treiber_stack.v
View file @
b9c66be3
...
...
@@ 87,7 +87,8 @@ Section proof.
Definition
pop_triple
(
s
:
loc
)
:
=
atomic_triple
(
fun
xs
=>
is_stack
s
xs
)%
I
(
fun
xs
ret
=>
ret
=
NONEV
∨
(
∃
x
,
ret
=
SOMEV
x
★
□
R
x
))%
I
(* FIXME: we can give a stronger one *)
(
fun
xs
ret
=>
(
ret
=
NONEV
∧
xs
=
[]
∧
is_stack
s
[])
∨
(
∃
x
,
ret
=
SOMEV
x
★
□
R
x
))%
I
(* FIXME: we can give a stronger one *)
(
nclose
heapN
)
⊤
(
pop
#
s
).
...
...
@@ 104,9 +105,11 @@ Section proof.
destruct
xs
as
[
y'
xs'
].

simpl
.
iDestruct
"Hxs"
as
(
hd
)
"[Hs Hhd]"
.
wp_load
.
iDestruct
"Hvs'"
as
"[_ Hvs']"
.
iVs
(
"Hvs'"
$!
NONEV
with
"[]"
)
as
"HQ"
;
first
by
iLeft
.
iVsIntro
.
wp_let
.
iDestruct
"Hhd"
as
(
q
)
"Hhd"
.
wp_load
.
wp_match
.
iDestruct
"Hhd"
as
(
q
)
"[Hhd Hhd']"
.
iVs
(
"Hvs'"
$!
NONEV
with
"[Hhd]"
)
as
"HQ"
.
{
iLeft
.
iSplit
=>//.
iSplit
=>//.
iExists
hd
.
iFrame
.
rewrite
/
is_stack'
.
eauto
.
}
iVsIntro
.
wp_let
.
wp_load
.
wp_match
.
iVsIntro
.
by
iExists
[].

simpl
.
iDestruct
"Hxs"
as
(
hd
)
"[Hs Hhd]"
.
simpl
.
iDestruct
"Hhd"
as
(
hd'
q
)
"([Hhd Hhd'] & #Hy' & Hxs')"
.
...
...
Write
Preview
Markdown
is supported
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