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
Simon Spies
Iris
Commits
95433e05
Commit
95433e05
authored
Mar 06, 2019
by
Ralf Jung
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
revert language argument of LanguageCtx back to implicit
parent
da93f357
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
15 additions
and
16 deletions
+15
-16
theories/program_logic/ectx_language.v
theories/program_logic/ectx_language.v
+1
-1
theories/program_logic/ectxi_language.v
theories/program_logic/ectxi_language.v
+2
-2
theories/program_logic/hoare.v
theories/program_logic/hoare.v
+1
-1
theories/program_logic/language.v
theories/program_logic/language.v
+7
-8
theories/program_logic/total_weakestpre.v
theories/program_logic/total_weakestpre.v
+2
-2
theories/program_logic/weakestpre.v
theories/program_logic/weakestpre.v
+2
-2
No files found.
theories/program_logic/ectx_language.v
View file @
95433e05
...
...
@@ -201,7 +201,7 @@ Section ectx_language.
Qed
.
(* Every evaluation context is a context. *)
Global
Instance
ectx_lang_ctx
K
:
LanguageCtx
_
(
fill
K
).
Global
Instance
ectx_lang_ctx
K
:
LanguageCtx
(
fill
K
).
Proof
.
split
;
simpl
.
-
eauto
using
fill_not_val
.
...
...
theories/program_logic/ectxi_language.v
View file @
95433e05
...
...
@@ -137,8 +137,8 @@ Section ectxi_language.
intros
[]%
eq_None_not_Some
.
eapply
fill_val
,
Hsub
.
by
rewrite
/=
fill_app
.
Qed
.
Global
Instance
ectxi_lang_ctx_item
Ki
:
LanguageCtx
_
(
fill_item
Ki
).
Proof
.
change
(
LanguageCtx
_
(
fill
[
Ki
])).
apply
_
.
Qed
.
Global
Instance
ectxi_lang_ctx_item
Ki
:
LanguageCtx
(
fill_item
Ki
).
Proof
.
change
(
LanguageCtx
(
fill
[
Ki
])).
apply
_
.
Qed
.
End
ectxi_language
.
Arguments
fill
{
_
}
_
_
%
E
.
...
...
theories/program_logic/hoare.v
View file @
95433e05
...
...
@@ -89,7 +89,7 @@ Proof.
iIntros
(
v
)
"Hv"
.
by
iApply
"HΦ"
.
Qed
.
Lemma
ht_bind
`
{!
LanguageCtx
Λ
K
}
s
E
P
Φ
Φ
'
e
:
Lemma
ht_bind
`
{!
LanguageCtx
K
}
s
E
P
Φ
Φ
'
e
:
{{
P
}}
e
@
s
;
E
{{
Φ
}}
∧
(
∀
v
,
{{
Φ
v
}}
K
(
of_val
v
)
@
s
;
E
{{
Φ
'
}})
⊢
{{
P
}}
K
e
@
s
;
E
{{
Φ
'
}}.
Proof
.
...
...
theories/program_logic/language.v
View file @
95433e05
...
...
@@ -53,9 +53,8 @@ Class LanguageCtx {Λ : language} (K : expr Λ → expr Λ) := {
to_val
e1'
=
None
→
prim_step
(
K
e1'
)
σ
1
κ
e2
σ
2
efs
→
∃
e2'
,
e2
=
K
e2'
∧
prim_step
e1'
σ
1
κ
e2'
σ
2
efs
}.
Arguments
LanguageCtx
:
clear
implicits
.
Instance
language_ctx_id
Λ
:
LanguageCtx
Λ
(@
id
(
expr
Λ
)).
Instance
language_ctx_id
Λ
:
LanguageCtx
(@
id
(
expr
Λ
)).
Proof
.
constructor
;
naive_solver
.
Qed
.
Inductive
atomicity
:
=
StronglyAtomic
|
WeaklyAtomic
.
...
...
@@ -142,19 +141,19 @@ Section language.
Atomic
StronglyAtomic
e
→
Atomic
a
e
.
Proof
.
unfold
Atomic
.
destruct
a
;
eauto
using
val_irreducible
.
Qed
.
Lemma
reducible_fill
`
{!
LanguageCtx
Λ
K
}
e
σ
:
Lemma
reducible_fill
`
{!
@
LanguageCtx
Λ
K
}
e
σ
:
to_val
e
=
None
→
reducible
(
K
e
)
σ
→
reducible
e
σ
.
Proof
.
intros
?
(
e'
&
σ
'
&
k
&
efs
&
Hstep
)
;
unfold
reducible
.
apply
fill_step_inv
in
Hstep
as
(
e2'
&
_
&
Hstep
)
;
eauto
.
Qed
.
Lemma
reducible_no_obs_fill
`
{!
LanguageCtx
Λ
K
}
e
σ
:
Lemma
reducible_no_obs_fill
`
{!
@
LanguageCtx
Λ
K
}
e
σ
:
to_val
e
=
None
→
reducible_no_obs
(
K
e
)
σ
→
reducible_no_obs
e
σ
.
Proof
.
intros
?
(
e'
&
σ
'
&
efs
&
Hstep
)
;
unfold
reducible_no_obs
.
apply
fill_step_inv
in
Hstep
as
(
e2'
&
_
&
Hstep
)
;
eauto
.
Qed
.
Lemma
irreducible_fill
`
{!
LanguageCtx
Λ
K
}
e
σ
:
Lemma
irreducible_fill
`
{!
@
LanguageCtx
Λ
K
}
e
σ
:
to_val
e
=
None
→
irreducible
e
σ
→
irreducible
(
K
e
)
σ
.
Proof
.
rewrite
-!
not_reducible
.
naive_solver
eauto
using
reducible_fill
.
Qed
.
...
...
@@ -186,7 +185,7 @@ Section language.
Class
PureExec
(
φ
:
Prop
)
(
n
:
nat
)
(
e1
e2
:
expr
Λ
)
:
=
pure_exec
:
φ
→
relations
.
nsteps
pure_step
n
e1
e2
.
Lemma
pure_step_ctx
K
`
{!
LanguageCtx
Λ
K
}
e1
e2
:
Lemma
pure_step_ctx
K
`
{!
@
LanguageCtx
Λ
K
}
e1
e2
:
pure_step
e1
e2
→
pure_step
(
K
e1
)
(
K
e2
).
Proof
.
...
...
@@ -198,13 +197,13 @@ Section language.
+
edestruct
(
Hstep
σ
1
κ
e2''
σ
2
efs
)
as
(?
&
->
&
->
&
->)
;
auto
.
Qed
.
Lemma
pure_step_nsteps_ctx
K
`
{!
LanguageCtx
Λ
K
}
n
e1
e2
:
Lemma
pure_step_nsteps_ctx
K
`
{!
@
LanguageCtx
Λ
K
}
n
e1
e2
:
relations
.
nsteps
pure_step
n
e1
e2
→
relations
.
nsteps
pure_step
n
(
K
e1
)
(
K
e2
).
Proof
.
induction
1
;
econstructor
;
eauto
using
pure_step_ctx
.
Qed
.
(* We do not make this an instance because it is awfully general. *)
Lemma
pure_exec_ctx
K
`
{!
LanguageCtx
Λ
K
}
φ
n
e1
e2
:
Lemma
pure_exec_ctx
K
`
{!
@
LanguageCtx
Λ
K
}
φ
n
e1
e2
:
PureExec
φ
n
e1
e2
→
PureExec
φ
n
(
K
e1
)
(
K
e2
).
Proof
.
rewrite
/
PureExec
;
eauto
using
pure_step_nsteps_ctx
.
Qed
.
...
...
theories/program_logic/total_weakestpre.v
View file @
95433e05
...
...
@@ -147,7 +147,7 @@ Proof.
iModIntro
.
iSplit
;
first
done
.
iFrame
"Hσ Hefs"
.
by
iApply
twp_value'
.
Qed
.
Lemma
twp_bind
K
`
{!
LanguageCtx
Λ
K
}
s
E
e
Φ
:
Lemma
twp_bind
K
`
{!
LanguageCtx
K
}
s
E
e
Φ
:
WP
e
@
s
;
E
[{
v
,
WP
K
(
of_val
v
)
@
s
;
E
[{
Φ
}]
}]
-
∗
WP
K
e
@
s
;
E
[{
Φ
}].
Proof
.
revert
Φ
.
cut
(
∀
Φ
'
,
WP
e
@
s
;
E
[{
Φ
'
}]
-
∗
∀
Φ
,
...
...
@@ -169,7 +169,7 @@ Proof.
-
by
setoid_rewrite
and_elim_r
.
Qed
.
Lemma
twp_bind_inv
K
`
{!
LanguageCtx
Λ
K
}
s
E
e
Φ
:
Lemma
twp_bind_inv
K
`
{!
LanguageCtx
K
}
s
E
e
Φ
:
WP
K
e
@
s
;
E
[{
Φ
}]
-
∗
WP
e
@
s
;
E
[{
v
,
WP
K
(
of_val
v
)
@
s
;
E
[{
Φ
}]
}].
Proof
.
iIntros
"H"
.
remember
(
K
e
)
as
e'
eqn
:
He'
.
...
...
theories/program_logic/weakestpre.v
View file @
95433e05
...
...
@@ -143,7 +143,7 @@ Proof.
iIntros
(
v
)
"H"
.
by
iApply
"H"
.
Qed
.
Lemma
wp_bind
K
`
{!
LanguageCtx
Λ
K
}
s
E
e
Φ
:
Lemma
wp_bind
K
`
{!
LanguageCtx
K
}
s
E
e
Φ
:
WP
e
@
s
;
E
{{
v
,
WP
K
(
of_val
v
)
@
s
;
E
{{
Φ
}}
}}
⊢
WP
K
e
@
s
;
E
{{
Φ
}}.
Proof
.
iIntros
"H"
.
iL
ö
b
as
"IH"
forall
(
E
e
Φ
).
rewrite
wp_unfold
/
wp_pre
.
...
...
@@ -160,7 +160,7 @@ Proof.
iModIntro
.
iFrame
"Hσ Hefs"
.
by
iApply
"IH"
.
Qed
.
Lemma
wp_bind_inv
K
`
{!
LanguageCtx
Λ
K
}
s
E
e
Φ
:
Lemma
wp_bind_inv
K
`
{!
LanguageCtx
K
}
s
E
e
Φ
:
WP
K
e
@
s
;
E
{{
Φ
}}
⊢
WP
e
@
s
;
E
{{
v
,
WP
K
(
of_val
v
)
@
s
;
E
{{
Φ
}}
}}.
Proof
.
iIntros
"H"
.
iL
ö
b
as
"IH"
forall
(
E
e
Φ
).
rewrite
!
wp_unfold
/
wp_pre
.
...
...
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