Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
ReLoC-v1
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dan Frumin
ReLoC-v1
Commits
94f9e811
Commit
94f9e811
authored
Aug 09, 2017
by
Dan Frumin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Strength the CAS rule
parent
e1df5b4b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
11 additions
and
11 deletions
+11
-11
F_mu_ref_conc/examples/counter.v
F_mu_ref_conc/examples/counter.v
+4
-4
F_mu_ref_conc/rel_tactics.v
F_mu_ref_conc/rel_tactics.v
+2
-2
F_mu_ref_conc/relational_properties.v
F_mu_ref_conc/relational_properties.v
+5
-5
No files found.
F_mu_ref_conc/examples/counter.v
View file @
94f9e811
...
...
@@ -180,20 +180,20 @@ Section CG_Counter.
destruct
(
decide
(
n
=
n
'
));
subst
.
-
iExists
(#
nv
n
'
).
iFrame
.
iSplitR
;
eauto
.
{
iDestruct
1
as
%
Hfoo
.
exfalso
.
done
.
}
iIntros
"_ Hx"
.
simpl
.
iIntros
"_
!>
Hx"
.
simpl
.
rewrite
->
uPred
.
and_elim_r
.
iSpecialize
(
"HQ"
$
!
n
'
with
"[Hx HR]"
).
{
iFrame
.
}
iApply
(
bin_log_related_if_true_masked_l
_
_
_
K
);
auto
.
-
iExists
(#
nv
n
'
).
iFrame
.
iSplitL
;
eauto
;
last
first
.
{
iDestruct
1
as
%
Hfoo
.
exfalso
.
simplify_eq
.
}
iIntros
"_ Hx"
.
simpl
.
iIntros
"_
!>
Hx"
.
simpl
.
iApply
(
bin_log_related_if_false_masked_l
_
_
_
K
);
auto
.
rewrite
->
uPred
.
and_elim_l
.
iMod
(
"HQ"
with
"[Hx HR]"
).
{
iExists
_
;
iFrame
.
}
{
iExists
_
;
iFrame
.
}
iApply
"IH"
.
Qed
.
Qed
.
(
*
A
similar
atomic
specification
for
the
counter_read
fn
*
)
Lemma
bin_log_counter_read_atomic_l
R
Γ
E1
E2
K
x
t
τ
:
...
...
F_mu_ref_conc/rel_tactics.v
View file @
94f9e811
...
...
@@ -360,8 +360,8 @@ Lemma tac_rel_cas_l `{heapIG Σ, !cfgSG Σ} nam nam_cl Δ1 Δ2 E1 E2 p i1 N P l
nam_cl
≠
nam
→
Δ
2
=
envs_snoc
(
envs_snoc
Δ
1
false
nam
(
▷
P
)
%
I
)
false
nam_cl
(
▷
P
={
E1
∖
↑
N
,
E1
}=
∗
True
)
%
I
→
(
Δ
2
⊢
|={
E2
}=>
∃
v
,
▷
(
l
↦ᵢ
v
)
∗
((
⌜
v
≠
v1
⌝
∗
(
l
↦ᵢ
v
-
∗
{
E2
,
E1
;
Γ
}
⊨
fill
K
'
(#
♭
false
)
≤
log
≤
t
:
τ
))
∨
(
⌜
v
=
v1
⌝
∗
(
l
↦ᵢ
v2
-
∗
{
E2
,
E1
;
Γ
}
⊨
fill
K
'
(#
♭
true
)
≤
log
≤
t
:
τ
))))
→
((
⌜
v
≠
v1
⌝
∗
▷
(
l
↦ᵢ
v
-
∗
{
E2
,
E1
;
Γ
}
⊨
fill
K
'
(#
♭
false
)
≤
log
≤
t
:
τ
))
∨
(
⌜
v
=
v1
⌝
∗
▷
(
l
↦ᵢ
v2
-
∗
{
E2
,
E1
;
Γ
}
⊨
fill
K
'
(#
♭
true
)
≤
log
≤
t
:
τ
))))
→
(
Δ
1
⊢
bin_log_related
E1
E1
Γ
e
t
τ
).
Proof
.
intros
???????????
.
...
...
F_mu_ref_conc/relational_properties.v
View file @
94f9e811
...
...
@@ -479,8 +479,8 @@ Section properties.
(
to_val
e1
=
Some
v1
)
→
(
to_val
e2
=
Some
v2
)
→
(
|={
E1
,
E2
}=>
∃
v
'
,
▷
(
l
↦ᵢ
v
'
)
∗
(
⌜
v
'
≠
v1
⌝
-
∗
l
↦ᵢ
v
'
-
∗
{
E2
,
E1
;
Γ
}
⊨
fill
K
(#
♭
false
)
≤
log
≤
t
:
τ
)
∗
(
⌜
v
'
=
v1
⌝
-
∗
l
↦ᵢ
v2
-
∗
{
E2
,
E1
;
Γ
}
⊨
fill
K
(#
♭
true
)
≤
log
≤
t
:
τ
))
(
⌜
v
'
≠
v1
⌝
-
∗
▷
(
l
↦ᵢ
v
'
-
∗
{
E2
,
E1
;
Γ
}
⊨
fill
K
(#
♭
false
)
≤
log
≤
t
:
τ
)
)
∗
(
⌜
v
'
=
v1
⌝
-
∗
▷
(
l
↦ᵢ
v2
-
∗
{
E2
,
E1
;
Γ
}
⊨
fill
K
(#
♭
true
)
≤
log
≤
t
:
τ
)
))
-
∗
{
E1
,
E1
;
Γ
}
⊨
fill
K
(
CAS
(
Loc
l
)
e1
e2
)
≤
log
≤
t
:
τ
.
Proof
.
iIntros
(
??
)
"Hlog"
.
...
...
@@ -488,11 +488,11 @@ Section properties.
iMod
"Hlog"
as
(
v
'
)
"[Hl [Hlog_fail Hlog_suc]]"
.
iModIntro
.
destruct
(
decide
(
v
'
=
v1
)).
-
(
*
CAS
successful
*
)
subst
.
iApply
(
wp_cas_suc
with
"Hl"
);
eauto
.
i
Next
.
by
iApply
"Hlog_suc"
.
iApply
(
wp_cas_suc
with
"Hl"
);
eauto
.
i
Specialize
(
"Hlog_suc"
with
"[]"
);
eauto
.
-
(
*
CAS
failed
*
)
iApply
(
wp_cas_fail
with
"Hl"
);
eauto
.
i
Next
.
by
iApply
"Hlog_fail"
.
i
Specialize
(
"Hlog_fail"
with
"[]"
);
eauto
.
Qed
.
Lemma
bin_log_related_cas_fail_l
Γ
E1
E2
K
l
e1
e2
v1
v2
t
τ
:
...
...
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