Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Iris
c
Commits
9a8c087e
Commit
9a8c087e
authored
Oct 02, 2018
by
Léon Gondelman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wip
parent
4592361e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
10 deletions
+10
-10
theories/vcgen/vcgen.v
theories/vcgen/vcgen.v
+10
-10
No files found.
theories/vcgen/vcgen.v
View file @
9a8c087e
...
...
@@ -354,9 +354,9 @@ Section vcg_spec.
Lemma
dce_subst_subst_comm
E
(
x
:
string
)
(
de
:
dcexpr
)
(
dv
:
dval
)
:
dcexpr_interp
E
(
dce_subst
E
x
dv
de
)
=
(
let
:
x
:
=
(
dval_interp
E
dv
)
in
(
dcexpr_interp
E
de
))%
E
.
(
subst
x
(
dval_interp
E
dv
)
(
dcexpr_interp
E
de
))%
E
.
Proof
.
Admitted
.
Admitted
.
Lemma
mapsto_wand_list_aux_spec
E
m
Φ
(
k
:
nat
)
:
mapsto_wand_list_aux
E
m
Φ
k
-
∗
...
...
@@ -519,22 +519,22 @@ Section vcg_spec.
as
[[[
ms2
mNew2
]
dv2
]|]
eqn
:
Hsp2
;
simplify_eq
/=.
unfold
popstack
in
Hsp
.
destruct
ms2
as
[|
t
ms2'
]
eqn
:
Houteq
;
simplify_eq
/=.
(* specialize (IHn (mNew1 :: ms1)). *)
(* specialize (IHn de1). *)
iPoseProof
(
IHn
de1
ms
)
as
"Hawp1"
;
first
done
.
iPoseProof
(
IHn
(
dce_subst
E
s
dv1
de2
)
(
mNew1
::
ms1
))
as
"Hawp2"
;
first
done
.
iDestruct
(
denv_stack_interp_trans
with
"Hawp1 Hawp2"
)
as
"Hawp"
.
iClear
"Hawp1 Hawp2"
.
iApply
(
denv_stack_interp_mono
with
"Hawp"
).
iIntros
"[Hawp1 Hawp2]"
.
assert
(
Closed
(
s
:
b
:
[])
(
dcexpr_interp
E
de2
)).
admit
.
iApply
awp_bind
.
*
admit
.
*
exists
(
λ
:
s
,
dcexpr_interp
E
de2
)%
V
.
by
unlock
.
*
iApply
(
awp_wand
with
"Hawp1"
).
iIntros
(?)
"[% HmNew1]"
.
simplify_eq
/=.
iClear
"Hawp"
.
iDestruct
(
"Hawp2"
with
"HmNew1"
)
as
"[HmNew' Hawp2]"
.
rewrite
dce_subst_subst_comm
.
iApply
(
awp_wand
with
"Hawp2"
).
iIntros
(?)
"[% HmNew1]"
.
simplify_eq
/=.
iSplit
;
eauto
.
rewrite
-
denv_merge_interp
.
iFrame
.
iIntros
(
v
)
"[% HmNew1]"
.
simplify_eq
/=.
iClear
"Hawp"
.
iDestruct
(
"Hawp2"
with
"HmNew1"
)
as
"[HmNew' Hawp2]"
.
awp_let
.
rewrite
dce_subst_subst_comm
.
iApply
(
awp_wand
with
"Hawp2"
).
iIntros
(?)
"[% HmNew1]"
.
simplify_eq
/=.
iSplit
;
eauto
.
rewrite
-
denv_merge_interp
.
iFrame
.
+
destruct
(
vcg_sp
E
ms
de
n
)
as
[[[
ms1
mNew1
]
dv1
]|]
eqn
:
Hsp'
;
simplify_eq
/=.
destruct
(
is_dloc
_
_
)
...
...
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