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
Joshua Yanovski
iris-coq
Commits
563ed428
Commit
563ed428
authored
Feb 13, 2016
by
Ralf Jung
Browse files
prove that we can always own an empty fragment of auth
parent
7905c004
Changes
3
Hide whitespace changes
Inline
Side-by-side
algebra/cmra.v
View file @
563ed428
...
...
@@ -378,6 +378,8 @@ Lemma cmra_update_op x1 x2 y1 y2 : x1 ~~> y1 → x2 ~~> y2 → x1 ⋅ x2 ~~> y1
Proof
.
rewrite
!
cmra_update_updateP
;
eauto
using
cmra_updateP_op
with
congruence
.
Qed
.
Lemma
cmra_update_id
x
:
x
~~>
x
.
Proof
.
intro
.
auto
.
Qed
.
Section
identity_updates
.
Context
`
{
Empty
A
,
!
CMRAIdentity
A
}
.
...
...
program_logic/auth.v
View file @
563ed428
...
...
@@ -35,6 +35,10 @@ Section auth.
by
rewrite
always_and_sep_l
.
Qed
.
Lemma
auth_empty
γ
E
:
True
⊑
pvs
E
E
(
auth_own
γ
∅
).
Proof
.
by
rewrite
own_update_empty
/
auth_own
.
Qed
.
Context
{
H
φ
:
∀
n
,
Proper
(
dist
n
==>
dist
n
)
φ
}
.
Lemma
auth_opened
E
a
γ
:
...
...
program_logic/ghost_ownership.v
View file @
563ed428
...
...
@@ -93,7 +93,7 @@ Proof.
by
rewrite
-
(
exist_intro
γ
).
Qed
.
Lemma
own_updateP
γ
a
P
E
:
Lemma
own_updateP
P
γ
a
E
:
a
~~>:
P
→
own
i
γ
a
⊑
pvs
E
E
(
∃
a
'
,
■
P
a
'
∧
own
i
γ
a
'
).
Proof
.
intros
Ha
.
...
...
@@ -105,7 +105,7 @@ Proof.
rewrite
-
(
exist_intro
a
'
).
by
apply
and_intro
;
[
apply
const_intro
|
].
Qed
.
Lemma
own_updateP_empty
`
{
Empty
A
,
!
CMRAIdentity
A
}
γ
a
P
E
:
Lemma
own_updateP_empty
`
{
Empty
A
,
!
CMRAIdentity
A
}
P
γ
E
:
∅
~~>:
P
→
True
⊑
pvs
E
E
(
∃
a
,
■
P
a
∧
own
i
γ
a
).
Proof
.
intros
Hemp
.
...
...
@@ -119,7 +119,14 @@ Qed.
Lemma
own_update
γ
a
a
'
E
:
a
~~>
a
'
→
own
i
γ
a
⊑
pvs
E
E
(
own
i
γ
a
'
).
Proof
.
intros
;
rewrite
(
own_updateP
_
_
(
a
'
=
));
last
by
apply
cmra_update_updateP
.
by
apply
pvs_mono
,
uPred
.
exist_elim
=>
m
''
;
apply
uPred
.
const_elim_l
=>
->
.
intros
;
rewrite
(
own_updateP
(
a
'
=
));
last
by
apply
cmra_update_updateP
.
by
apply
pvs_mono
,
exist_elim
=>
a
''
;
apply
const_elim_l
=>
->
.
Qed
.
Lemma
own_update_empty
`
{
Empty
A
,
!
CMRAIdentity
A
}
γ
E
:
True
⊑
pvs
E
E
(
own
i
γ
∅
).
Proof
.
rewrite
(
own_updateP_empty
(
∅
=
));
last
by
apply
cmra_updateP_id
.
apply
pvs_mono
,
exist_elim
=>
a
.
by
apply
const_elim_l
=>->
.
Qed
.
End
global
.
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