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
Iris
Iris
Commits
43048a39
Commit
43048a39
authored
Aug 31, 2017
by
Robbert Krebbers
Committed by
Jacques-Henri Jourdan
Oct 30, 2017
Browse files
Also add Affine instances for empty/nil big ops.
parent
40b233f2
Changes
1
Hide whitespace changes
Inline
Side-by-side
theories/bi/big_op.v
View file @
43048a39
...
...
@@ -168,9 +168,14 @@ Section sep_list.
TCForall
Persistent
Ps
→
Persistent
([
∗
]
Ps
).
Proof
.
induction
1
;
simpl
;
apply
_
.
Qed
.
Global
Instance
big_sepL_nil_affine
Φ
:
Affine
([
∗
list
]
k
↦
x
∈
[],
Φ
k
x
).
Proof
.
simpl
;
apply
_
.
Qed
.
Global
Instance
big_sepL_affine
Φ
l
:
(
∀
k
x
,
Affine
(
Φ
k
x
))
→
Affine
([
∗
list
]
k
↦
x
∈
l
,
Φ
k
x
).
Proof
.
revert
Φ
.
induction
l
as
[|
x
l
IH
]=>
Φ
?
/=
;
apply
_
.
Qed
.
Global
Instance
big_sepL_affine_id
Ps
:
TCForall
Affine
Ps
→
Affine
([
∗
]
Ps
).
Proof
.
induction
1
;
simpl
;
apply
_
.
Qed
.
End
sep_list
.
Section
sep_list2
.
...
...
@@ -434,11 +439,12 @@ Section gmap.
(
∀
k
x
,
Persistent
(
Φ
k
x
))
→
Persistent
([
∗
map
]
k
↦
x
∈
m
,
Φ
k
x
).
Proof
.
intros
.
apply
big_sepL_persistent
=>
_
[??]
;
apply
_
.
Qed
.
Global
Instance
big_sepM_empty_affine
Φ
:
Affine
([
∗
map
]
k
↦
x
∈
∅
,
Φ
k
x
).
Proof
.
rewrite
/
big_opM
map_to_list_empty
.
apply
_
.
Qed
.
Global
Instance
big_sepM_affine
Φ
m
:
(
∀
k
x
,
Affine
(
Φ
k
x
))
→
Affine
([
∗
map
]
k
↦
x
∈
m
,
Φ
k
x
).
Proof
.
intros
.
apply
big_sepL_affine
=>
_
[??]
;
apply
_
.
Qed
.
Proof
.
intros
.
apply
big_sepL_affine
=>
_
[??]
;
apply
_
.
Qed
.
End
gmap
.
(** ** Big ops over finite sets *)
...
...
@@ -591,6 +597,8 @@ Section gset.
(
∀
x
,
Persistent
(
Φ
x
))
→
Persistent
([
∗
set
]
x
∈
X
,
Φ
x
).
Proof
.
rewrite
/
big_opS
.
apply
_
.
Qed
.
Global
Instance
big_sepS_empty_affine
Φ
:
Affine
([
∗
set
]
x
∈
∅
,
Φ
x
).
Proof
.
rewrite
/
big_opS
elements_empty
.
apply
_
.
Qed
.
Global
Instance
big_sepS_affine
Φ
X
:
(
∀
x
,
Affine
(
Φ
x
))
→
Affine
([
∗
set
]
x
∈
X
,
Φ
x
).
Proof
.
rewrite
/
big_opS
.
apply
_
.
Qed
.
...
...
@@ -669,6 +677,8 @@ Section gmultiset.
(
∀
x
,
Persistent
(
Φ
x
))
→
Persistent
([
∗
mset
]
x
∈
X
,
Φ
x
).
Proof
.
rewrite
/
big_opMS
.
apply
_
.
Qed
.
Global
Instance
big_sepMS_empty_affine
Φ
:
Affine
([
∗
mset
]
x
∈
∅
,
Φ
x
).
Proof
.
rewrite
/
big_opMS
gmultiset_elements_empty
.
apply
_
.
Qed
.
Global
Instance
big_sepMS_affine
Φ
X
:
(
∀
x
,
Affine
(
Φ
x
))
→
Affine
([
∗
mset
]
x
∈
X
,
Φ
x
).
Proof
.
rewrite
/
big_opMS
.
apply
_
.
Qed
.
...
...
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