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
Dan Frumin
ReLoC-v1
Commits
655c9011
Commit
655c9011
authored
Jun 26, 2016
by
Robbert Krebbers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make compile with last version of Iris.
parent
8156cf85
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
14 additions
and
15 deletions
+14
-15
F_mu_ref/rules.v
F_mu_ref/rules.v
+5
-5
F_mu_ref_par/rules.v
F_mu_ref_par/rules.v
+6
-7
F_mu_ref_par/soundness_binary.v
F_mu_ref_par/soundness_binary.v
+2
-2
README.md
README.md
+1
-1
No files found.
F_mu_ref/rules.v
View file @
655c9011
...
...
@@ -205,12 +205,12 @@ Section lang_rules.
l
↦
{
q1
}
v1
★
l
↦
{
q2
}
v2
⊣⊢
v1
=
v2
∧
l
↦
{
q1
+
q2
}
v1
.
Proof
.
destruct
(
decide
(
v1
=
v2
))
as
[
->|
].
{
by
rewrite
heap_mapsto_op_eq
const
_equiv
// left_id. }
{
by
rewrite
heap_mapsto_op_eq
pure
_equiv
// left_id. }
rewrite
-
auth_own_op
op_singleton
pair_op
dec_agree_ne
//.
apply
(
anti_symm
(
⊢
));
last
by
apply
const
_elim_l
.
apply
(
anti_symm
(
⊢
));
last
by
apply
pure
_elim_l
.
rewrite
auth_own_valid
gmap_validI
(
forall_elim
l
)
lookup_singleton
.
rewrite
option_validI
prod_validI
frac_validI
discrete_valid
.
by
apply
const
_elim_r
.
by
apply
pure
_elim_r
.
Qed
.
Lemma
heap_mapsto_op_split
l
q
v
:
(
l
↦
{
q
}
v
)
%
I
≡
(
l
↦
{
q
/
2
}
v
★
l
↦
{
q
/
2
}
v
)
%
I
.
...
...
@@ -231,8 +231,8 @@ Section lang_rules.
apply
wand_intro_l
.
rewrite
always_and_sep_l
-
assoc
-
always_and_sep_l
.
cbn
;
rewrite
to_of_val
.
apply
const
_elim_l
=>-
[
l
[
->
[
-
Heq
[
->
?
]]]];
inversion
Heq
;
subst
.
by
rewrite
(
forall_elim
l
)
right_id
const
_equiv
// left_id wand_elim_r.
apply
pure
_elim_l
=>-
[
l
[
->
[
-
Heq
[
->
?
]]]];
inversion
Heq
;
subst
.
by
rewrite
(
forall_elim
l
)
right_id
pure
_equiv
// left_id wand_elim_r.
cbn
;
rewrite
H
;
eauto
.
Qed
.
...
...
F_mu_ref_par/rules.v
View file @
655c9011
...
...
@@ -218,12 +218,12 @@ Section lang_rules.
l
↦ᵢ
{
q1
}
v1
★
l
↦ᵢ
{
q2
}
v2
⊣⊢
v1
=
v2
∧
l
↦ᵢ
{
q1
+
q2
}
v1
.
Proof
.
destruct
(
decide
(
v1
=
v2
))
as
[
->|
].
{
by
rewrite
heap_mapsto_op_eq
const
_equiv
// left_id. }
{
by
rewrite
heap_mapsto_op_eq
pure
_equiv
// left_id. }
rewrite
-
auth_own_op
op_singleton
pair_op
dec_agree_ne
//.
apply
(
anti_symm
(
⊢
));
last
by
apply
const
_elim_l
.
apply
(
anti_symm
(
⊢
));
last
by
apply
pure
_elim_l
.
rewrite
auth_own_valid
gmap_validI
(
forall_elim
l
)
lookup_singleton
.
rewrite
option_validI
prod_validI
frac_validI
discrete_valid
.
by
apply
const
_elim_r
.
by
apply
pure
_elim_r
.
Qed
.
Lemma
heap_mapsto_dup_invalid
l
v1
v2
:
l
↦ᵢ
v1
★
l
↦ᵢ
v2
⊢
False
%
I
.
...
...
@@ -246,15 +246,14 @@ Section lang_rules.
∃
l
,
ef
=
@
None
expr
∧
(
to_val
e
'
)
=
(
Some
(
LocV
l
))
∧
σ'
=
<
[
l
:=
v
]
>
σ
∧
σ
!!
l
=
None
).
rewrite
-
(
wp_lift_atomic_step
(
Alloc
e
)
φ
σ
)
// /φ;
last
by
intros
;
inv_step
;
eauto
.
[
|
cbn
;
rewrite
H
;
eauto
|
by
intros
;
inv_step
;
eauto
]
.
apply
sep_mono
,
later_mono
;
first
done
.
apply
forall_intro
=>
e2
;
apply
forall_intro
=>
σ
2
;
apply
forall_intro
=>
ef
.
apply
wand_intro_l
.
rewrite
always_and_sep_l
-
assoc
-
always_and_sep_l
.
cbn
;
rewrite
to_of_val
.
apply
const_elim_l
=>-
[
l
[
->
[
-
Heq
[
->
?
]]]];
inversion
Heq
;
subst
.
by
rewrite
(
forall_elim
l
)
right_id
const_equiv
// left_id wand_elim_r.
cbn
;
rewrite
H
;
eauto
.
apply
pure_elim_l
=>-
[
l
[
->
[
-
Heq
[
->
?
]]]];
inversion
Heq
;
subst
.
by
rewrite
(
forall_elim
l
)
right_id
pure_equiv
// left_id wand_elim_r.
Qed
.
Lemma
wp_load_pst
E
σ
l
v
Φ
:
...
...
F_mu_ref_par/soundness_binary.v
View file @
655c9011
...
...
@@ -41,7 +41,7 @@ Section Soundness.
iAssert
(
@
auth
.
auth_inv
_
Σ
_
_
γ
(
Spec_inv
([
e
'
],
∅
)))
with
"[Hcfg1]"
as
"Hinv"
.
{
iExists
_
;
iFrame
"Hcfg1"
.
apply
const_i
ntro
.
rewrite
from_to_cfg
;
constructor
.
iPureI
ntro
.
rewrite
from_to_cfg
;
constructor
.
}
iPvs
(
inv_alloc
(
nroot
.
@
"Fμ,ref,par"
.
@
3
)
with
"[Hinv]"
)
as
"#Hcfg"
;
trivial
.
...
...
@@ -66,7 +66,7 @@ Section Soundness.
iDestruct
"Ha'"
as
{
ρ'
}
"Ha'"
;
iDestruct
"Ha'"
as
%
Ha
'
.
rewrite
->
(
right_id
_
_
)
in
Ha
'
;
setoid_subst
.
iPvsIntro
;
iSplitL
.
-
iExists
_.
rewrite
own_op
.
iDestruct
"Hown"
as
"[Ho1 Ho2]"
.
-
iDestruct
"Hown"
as
"[Ho1 Ho2]"
.
iExists
_.
iSplitL
;
trivial
.
-
iPureIntro
.
destruct
ρ'
as
[
th
hp
];
unfold
op
,
cmra_op
in
*
;
simpl
in
*
.
...
...
README.md
View file @
655c9011
...
...
@@ -4,4 +4,4 @@ This version is known to compile with:
-
Coq 8.5pl1
-
Ssreflect 1.6
-
Iris
dc6db28
b
-
Iris
version https://gitlab.mpi-sws.org/FP/iris-coq/commit/b3d2ff9
b
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