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
Stacked Borrows Coq
Commits
f5a44b4e
Commit
f5a44b4e
authored
Jul 03, 2019
by
Hai Dang
Browse files
complete frame
parent
3cbd4410
Changes
1
Hide whitespace changes
Inline
Side-by-side
theories/sim/one_step.v
View file @
f5a44b4e
...
...
@@ -54,31 +54,39 @@ Proof.
right
.
eapply
CIH
;
eauto
.
Qed
.
Lemma
sim_body_frame
fs
ft
n
rf
r
es
σ
s
et
σ
t
Φ
:
r
⊨
{
n
,
fs
,
ft
}
(
es
,
σ
s
)
≥
(
et
,
σ
t
)
:
Φ
→
rf
⋅
r
⊨
{
n
,
fs
,
ft
}
(
es
,
σ
s
)
≥
(
et
,
σ
t
)
:
Lemma
sim_body_frame
'
fs
ft
n
(
rf
r
:
resUR
)
es
σ
s
et
σ
t
Φ
:
r
⊨
{
n
,
fs
,
ft
}
(
es
,
σ
s
)
≥
(
et
,
σ
t
)
:
Φ
:
Prop
→
∀
(
r
'
:
resUR
),
r
'
≡
rf
⋅
r
→
r
'
⊨
{
n
,
fs
,
ft
}
(
es
,
σ
s
)
≥
(
et
,
σ
t
)
:
(
λ
r
'
n
'
es
'
σ
s
'
et
'
σ
t
'
,
∃
r0
,
r
'
≡
rf
⋅
r0
∧
Φ
r0
n
'
es
'
σ
s
'
et
'
σ
t
'
).
Proof
.
revert
n
rf
r
es
σ
s
et
σ
t
Φ
.
pcofix
CIH
.
intros
n
rf
r0
es
σ
s
et
σ
t
Φ
SIM
.
intros
n
rf
r0
es
σ
s
et
σ
t
Φ
SIM
r
'
EQ
'
.
pfold
.
punfold
SIM
.
intros
NT
r_f
.
rewrite
cmra_assoc
.
intros
WSAT
.
intros
NT
r_f
WSAT
.
rewrite
->
EQ
'
,
->
(
cmra_assoc
r_f
rf
r0
)
in
WSAT
.
specialize
(
SIM
NT
_
WSAT
)
as
[
SU
TE
ST
].
split
;
[
done
|
..].
{
intros
.
destruct
(
TE
_
TERM
)
as
(
vs
'
&
σ
s
'
&
r
'
&
idx
'
&
STEP
'
&
WSAT
'
&
POST
).
exists
vs
'
,
σ
s
'
,
(
rf
⋅
r
'
),
idx
'
.
split
;
last
split
;
[
done
|
by
rewrite
cmra_assoc
|
by
exists
r
'
].
}
{
intros
.
destruct
(
TE
_
TERM
)
as
(
vs
'
&
σ
s
'
&
r
2
&
idx
'
&
STEP
'
&
WSAT
'
&
POST
).
exists
vs
'
,
σ
s
'
,
(
rf
⋅
r
2
),
idx
'
.
split
;
last
split
;
[
done
|
by
rewrite
cmra_assoc
|
by
exists
r
2
].
}
inversion
ST
.
-
constructor
1.
intros
.
specialize
(
STEP
_
_
STEPT
)
as
(
es
'
&
σ
s
'
&
r
'
&
idx
'
&
STEPS
'
&
WSAT
'
&
SIM
'
).
exists
es
'
,
σ
s
'
,
(
rf
⋅
r
'
),
idx
'
.
specialize
(
STEP
_
_
STEPT
)
as
(
es
'
&
σ
s
'
&
r
2
&
idx
'
&
STEPS
'
&
WSAT
'
&
SIM
'
).
exists
es
'
,
σ
s
'
,
(
rf
⋅
r
2
),
idx
'
.
split
;
last
split
;
[
done
|
by
rewrite
cmra_assoc
|
].
pclearbot
.
right
.
by
apply
CIH
.
pclearbot
.
right
.
by
e
apply
CIH
.
-
econstructor
2
;
eauto
.
{
instantiate
(
1
:=
(
rf
⋅
rc
)).
by
rewrite
-
cmra_assoc
(
cmra_assoc
r_f
).
}
intros
.
specialize
(
CONT
_
_
_
σ
s
'
σ
t
'
VRET
STACK
)
as
[
idx
'
SIM
'
].
exists
idx
'
.
pclearbot
.
right
.
Fail
apply
CIH
.
Abort
.
exists
idx
'
.
pclearbot
.
right
.
eapply
CIH
;
eauto
.
by
rewrite
cmra_assoc
.
Qed
.
Lemma
sim_body_frame
fs
ft
n
(
rf
r
:
resUR
)
es
σ
s
et
σ
t
Φ
:
r
⊨
{
n
,
fs
,
ft
}
(
es
,
σ
s
)
≥
(
et
,
σ
t
)
:
Φ
:
Prop
→
rf
⋅
r
⊨
{
n
,
fs
,
ft
}
(
es
,
σ
s
)
≥
(
et
,
σ
t
)
:
(
λ
r
'
n
'
es
'
σ
s
'
et
'
σ
t
'
,
∃
r0
,
r
'
≡
rf
⋅
r0
∧
Φ
r0
n
'
es
'
σ
s
'
et
'
σ
t
'
).
Proof
.
intros
.
eapply
sim_body_frame
'
;
eauto
.
Qed
.
Lemma
sim_body_result
fs
ft
r
n
es
et
σ
s
σ
t
Φ
:
(
✓
r
→
vrel_expr
r
(
of_result
es
)
(
of_result
et
)
∧
Φ
r
n
es
σ
s
et
σ
t
:
Prop
)
→
...
...
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