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
Rodolphe Lepigre
Iris
Commits
708b8ac0
Commit
708b8ac0
authored
Sep 13, 2019
by
Jacques-Henri Jourdan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'reorder_requires' into 'master'
Reorder Requires so that we do not depend of Export bugs. See merge request
!313
parents
5d4caebb
43a1a90f
Changes
86
Hide whitespace changes
Inline
Side-by-side
Showing
86 changed files
with
166 additions
and
156 deletions
+166
-156
ProofGuide.md
ProofGuide.md
+18
-0
tests/atomic.v
tests/atomic.v
+2
-2
tests/heap_lang2.v
tests/heap_lang2.v
+1
-1
tests/ipm_paper.v
tests/ipm_paper.v
+1
-1
tests/list_reverse.v
tests/list_reverse.v
+1
-1
tests/mosel_paper.v
tests/mosel_paper.v
+1
-1
tests/one_shot.v
tests/one_shot.v
+2
-2
tests/one_shot_once.v
tests/one_shot_once.v
+2
-2
tests/tree_sum.v
tests/tree_sum.v
+1
-1
theories/algebra/auth.v
theories/algebra/auth.v
+1
-1
theories/algebra/big_op.v
theories/algebra/big_op.v
+1
-1
theories/algebra/cmra.v
theories/algebra/cmra.v
+1
-1
theories/algebra/cmra_big_op.v
theories/algebra/cmra_big_op.v
+2
-2
theories/algebra/coPset.v
theories/algebra/coPset.v
+1
-1
theories/algebra/csum.v
theories/algebra/csum.v
+1
-1
theories/algebra/frac_auth.v
theories/algebra/frac_auth.v
+1
-2
theories/algebra/functions.v
theories/algebra/functions.v
+1
-1
theories/algebra/gmap.v
theories/algebra/gmap.v
+2
-3
theories/algebra/gmultiset.v
theories/algebra/gmultiset.v
+1
-1
theories/algebra/gset.v
theories/algebra/gset.v
+1
-1
theories/algebra/list.v
theories/algebra/list.v
+2
-2
theories/algebra/namespace_map.v
theories/algebra/namespace_map.v
+2
-3
theories/algebra/proofmode_classes.v
theories/algebra/proofmode_classes.v
+2
-2
theories/algebra/ufrac_auth.v
theories/algebra/ufrac_auth.v
+2
-4
theories/base_logic/base_logic.v
theories/base_logic/base_logic.v
+1
-1
theories/base_logic/bi.v
theories/base_logic/bi.v
+1
-1
theories/base_logic/bupd_alt.v
theories/base_logic/bupd_alt.v
+1
-1
theories/base_logic/derived.v
theories/base_logic/derived.v
+2
-2
theories/base_logic/lib/auth.v
theories/base_logic/lib/auth.v
+2
-2
theories/base_logic/lib/boxes.v
theories/base_logic/lib/boxes.v
+5
-5
theories/base_logic/lib/cancelable_invariants.v
theories/base_logic/lib/cancelable_invariants.v
+2
-2
theories/base_logic/lib/fancy_updates.v
theories/base_logic/lib/fancy_updates.v
+3
-3
theories/base_logic/lib/fancy_updates_from_vs.v
theories/base_logic/lib/fancy_updates_from_vs.v
+2
-2
theories/base_logic/lib/gen_heap.v
theories/base_logic/lib/gen_heap.v
+2
-2
theories/base_logic/lib/invariants.v
theories/base_logic/lib/invariants.v
+3
-3
theories/base_logic/lib/iprop.v
theories/base_logic/lib/iprop.v
+1
-1
theories/base_logic/lib/na_invariants.v
theories/base_logic/lib/na_invariants.v
+2
-2
theories/base_logic/lib/own.v
theories/base_logic/lib/own.v
+1
-2
theories/base_logic/lib/proph_map.v
theories/base_logic/lib/proph_map.v
+1
-1
theories/base_logic/lib/saved_prop.v
theories/base_logic/lib/saved_prop.v
+2
-2
theories/base_logic/lib/sts.v
theories/base_logic/lib/sts.v
+2
-2
theories/base_logic/lib/viewshifts.v
theories/base_logic/lib/viewshifts.v
+1
-1
theories/base_logic/lib/wsat.v
theories/base_logic/lib/wsat.v
+8
-8
theories/base_logic/proofmode.v
theories/base_logic/proofmode.v
+1
-1
theories/base_logic/upred.v
theories/base_logic/upred.v
+2
-3
theories/bi/big_op.v
theories/bi/big_op.v
+2
-2
theories/bi/embedding.v
theories/bi/embedding.v
+1
-1
theories/bi/interface.v
theories/bi/interface.v
+1
-1
theories/bi/lib/atomic.v
theories/bi/lib/atomic.v
+1
-1
theories/bi/weakestpre.v
theories/bi/weakestpre.v
+1
-1
theories/heap_lang/adequacy.v
theories/heap_lang/adequacy.v
+3
-3
theories/heap_lang/array.v
theories/heap_lang/array.v
+2
-2
theories/heap_lang/lang.v
theories/heap_lang/lang.v
+3
-3
theories/heap_lang/lib/arith.v
theories/heap_lang/lib/arith.v
+1
-1
theories/heap_lang/lib/assert.v
theories/heap_lang/lib/assert.v
+1
-1
theories/heap_lang/lib/atomic_heap.v
theories/heap_lang/lib/atomic_heap.v
+4
-4
theories/heap_lang/lib/counter.v
theories/heap_lang/lib/counter.v
+3
-3
theories/heap_lang/lib/diverge.v
theories/heap_lang/lib/diverge.v
+1
-1
theories/heap_lang/lib/increment.v
theories/heap_lang/lib/increment.v
+2
-2
theories/heap_lang/lib/lock.v
theories/heap_lang/lib/lock.v
+1
-2
theories/heap_lang/lib/par.v
theories/heap_lang/lib/par.v
+1
-1
theories/heap_lang/lib/spawn.v
theories/heap_lang/lib/spawn.v
+3
-3
theories/heap_lang/lib/spin_lock.v
theories/heap_lang/lib/spin_lock.v
+2
-2
theories/heap_lang/lib/ticket_lock.v
theories/heap_lang/lib/ticket_lock.v
+2
-2
theories/heap_lang/lifting.v
theories/heap_lang/lifting.v
+2
-2
theories/heap_lang/locations.v
theories/heap_lang/locations.v
+1
-1
theories/heap_lang/metatheory.v
theories/heap_lang/metatheory.v
+1
-1
theories/heap_lang/proofmode.v
theories/heap_lang/proofmode.v
+2
-2
theories/heap_lang/total_adequacy.v
theories/heap_lang/total_adequacy.v
+1
-1
theories/program_logic/adequacy.v
theories/program_logic/adequacy.v
+2
-2
theories/program_logic/atomic.v
theories/program_logic/atomic.v
+3
-3
theories/program_logic/ectx_lifting.v
theories/program_logic/ectx_lifting.v
+1
-1
theories/program_logic/hoare.v
theories/program_logic/hoare.v
+2
-2
theories/program_logic/lifting.v
theories/program_logic/lifting.v
+1
-1
theories/program_logic/ownp.v
theories/program_logic/ownp.v
+2
-2
theories/program_logic/total_adequacy.v
theories/program_logic/total_adequacy.v
+2
-2
theories/program_logic/total_ectx_lifting.v
theories/program_logic/total_ectx_lifting.v
+1
-2
theories/program_logic/total_lifting.v
theories/program_logic/total_lifting.v
+1
-1
theories/program_logic/total_weakestpre.v
theories/program_logic/total_weakestpre.v
+2
-2
theories/program_logic/weakestpre.v
theories/program_logic/weakestpre.v
+3
-1
theories/proofmode/base.v
theories/proofmode/base.v
+1
-1
theories/proofmode/classes.v
theories/proofmode/classes.v
+1
-1
theories/proofmode/environments.v
theories/proofmode/environments.v
+2
-2
theories/proofmode/ltac_tactics.v
theories/proofmode/ltac_tactics.v
+3
-4
theories/proofmode/modalities.v
theories/proofmode/modalities.v
+1
-1
theories/proofmode/notation.v
theories/proofmode/notation.v
+1
-1
No files found.
ProofGuide.md
View file @
708b8ac0
...
...
@@ -6,6 +6,24 @@ This complements the tactic documentation for the [proof mode](ProofMode.md) and
[
HeapLang
](
HeapLang.md
)
as well as the documentation of syntactic conventions in
the
[
style guide
](
StyleGuide.md
)
.
## Order of `Requires`
In Coq, declarations in modules imported later may override the
previous definition. Therefore, in order to make sure the most
relevant declarations and notations always take priority, we recommend
importing dependencies from the furthest to the closest.
In particular, when importing Iris, Stdpp and Coq stdlib modules, we
recommend importing in the following order:
-
Coq
-
stdpp
-
iris.bi
-
iris.proofmode
-
iris.algebra
-
iris.base_logic
-
iris.program_logic
-
iris.heap_lang
## Combinators for functors
In Iris, the type of propositions [iProp] is described by the solution to the
...
...
tests/atomic.v
View file @
708b8ac0
From
iris
.
heap_lang
Require
Export
lifting
notation
.
From
iris
.
program_logic
Require
Export
atomic
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
program_logic
Require
Export
atomic
.
From
iris
.
heap_lang
Require
Export
lifting
notation
.
From
iris
.
heap_lang
Require
Import
proofmode
notation
atomic_heap
.
Set
Default
Proof
Using
"Type"
.
...
...
tests/heap_lang2.v
View file @
708b8ac0
(* Test yet another way of importing heap_lang modules that used to break
printing *)
From
iris
.
heap_lang
Require
Export
lifting
notation
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
heap_lang
Require
Export
lifting
notation
.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
Set
Default
Proof
Using
"Type"
.
...
...
tests/ipm_paper.v
View file @
708b8ac0
...
...
@@ -3,8 +3,8 @@
Interactive Proofs in Higher-Order Concurrent Separation Logic
Robbert Krebbers, Amin Timany and Lars Birkedal
POPL 2017 *)
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
program_logic
Require
Export
hoare
.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
Set
Default
Proof
Using
"Type"
.
...
...
tests/list_reverse.v
View file @
708b8ac0
(** Correctness of in-place list reversal *)
From
iris
.
proofmode
Require
Export
tactics
.
From
iris
.
program_logic
Require
Export
total_weakestpre
weakestpre
.
From
iris
.
heap_lang
Require
Export
lang
.
From
iris
.
proofmode
Require
Export
tactics
.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
Set
Default
Proof
Using
"Type"
.
...
...
tests/mosel_paper.v
View file @
708b8ac0
...
...
@@ -5,8 +5,8 @@ Separation Logic
Robbert Krebbers, Jacques-Henri Jourdan, Ralf Jung, Joseph Tassarotti,
Jan-Oliver Kaiser, Amin Timany, Arthur Charguéraud, Derek Dreyer
ICFP 2018 *)
From
iris
.
proofmode
Require
Import
tactics
monpred
.
From
iris
.
bi
Require
Import
monpred
.
From
iris
.
proofmode
Require
Import
tactics
monpred
.
Lemma
example_1
{
PROP
:
bi
}
{
A
:
Type
}
(
P
:
PROP
)
(
Φ
Ψ
:
A
→
PROP
)
:
P
∗
(
∃
a
,
Φ
a
∨
Ψ
a
)
-
∗
∃
a
,
(
P
∗
Φ
a
)
∨
(
P
∗
Ψ
a
).
...
...
tests/one_shot.v
View file @
708b8ac0
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Import
excl
agree
csum
.
From
iris
.
program_logic
Require
Export
weakestpre
hoare
.
From
iris
.
heap_lang
Require
Export
lang
.
From
iris
.
algebra
Require
Import
excl
agree
csum
.
From
iris
.
heap_lang
Require
Import
assert
proofmode
notation
adequacy
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
heap_lang
.
lib
Require
Import
par
.
Set
Default
Proof
Using
"Type"
.
...
...
tests/one_shot_once.v
View file @
708b8ac0
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Import
frac
agree
csum
.
From
iris
.
program_logic
Require
Export
weakestpre
hoare
.
From
iris
.
heap_lang
Require
Export
lang
.
From
iris
.
algebra
Require
Import
frac
agree
csum
.
From
iris
.
heap_lang
Require
Import
assert
proofmode
notation
adequacy
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
heap_lang
.
lib
Require
Import
par
.
Set
Default
Proof
Using
"Type"
.
...
...
tests/tree_sum.v
View file @
708b8ac0
From
iris
.
proofmode
Require
Export
tactics
.
From
iris
.
program_logic
Require
Export
weakestpre
total_weakestpre
.
From
iris
.
heap_lang
Require
Export
lang
.
From
iris
.
proofmode
Require
Export
tactics
.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
Set
Default
Proof
Using
"Type"
.
...
...
theories/algebra/auth.v
View file @
708b8ac0
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Export
frac
agree
local_updates
.
From
iris
.
algebra
Require
Import
proofmode_classes
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
proofmode
Require
Import
tactics
.
Set
Default
Proof
Using
"Type"
.
(** Authoritative CMRA with fractional authoritative parts. [auth] has 3 types
...
...
theories/algebra/big_op.v
View file @
708b8ac0
From
iris
.
algebra
Require
Export
monoid
.
From
stdpp
Require
Export
functions
gmap
gmultiset
.
From
iris
.
algebra
Require
Export
monoid
.
Set
Default
Proof
Using
"Type*"
.
Local
Existing
Instances
monoid_ne
monoid_assoc
monoid_comm
monoid_left_id
monoid_right_id
monoid_proper
...
...
theories/algebra/cmra.v
View file @
708b8ac0
From
iris
.
algebra
Require
Export
ofe
monoid
.
From
stdpp
Require
Import
finite
.
From
iris
.
algebra
Require
Export
ofe
monoid
.
Set
Default
Proof
Using
"Type"
.
Class
PCore
(
A
:
Type
)
:
=
pcore
:
A
→
option
A
.
...
...
theories/algebra/cmra_big_op.v
View file @
708b8ac0
From
iris
.
algebra
Require
Export
big_op
cmra
.
From
stdpp
Require
Import
gmap
gmultiset
.
From
iris
.
algebra
Require
Export
big_op
cmra
.
Set
Default
Proof
Using
"Type*"
.
(** Option *)
...
...
@@ -33,4 +33,4 @@ Proof.
{
rewrite
big_opMS_empty
.
set_solver
.
}
rewrite
-
equiv_None
big_opMS_disj_union
big_opMS_singleton
equiv_None
op_None
IH
.
set_solver
.
Qed
.
\ No newline at end of file
Qed
.
theories/algebra/coPset.v
View file @
708b8ac0
From
stdpp
Require
Export
sets
coPset
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
From
stdpp
Require
Export
sets
coPset
.
Set
Default
Proof
Using
"Type"
.
(** This is pretty much the same as algebra/gset, but I was not able to
generalize the construction without breaking canonical structures. *)
...
...
theories/algebra/csum.v
View file @
708b8ac0
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
algebra
Require
Import
local_updates
.
From
iris
.
base_logic
Require
Import
base_logic
.
Set
Default
Proof
Using
"Type"
.
Local
Arguments
pcore
_
_
!
_
/.
Local
Arguments
cmra_pcore
_
!
_
/.
...
...
theories/algebra/frac_auth.v
View file @
708b8ac0
From
iris
.
algebra
Require
Export
frac
auth
.
From
iris
.
algebra
Require
Export
updates
local_updates
.
From
iris
.
algebra
Require
Export
frac
auth
updates
local_updates
.
From
iris
.
algebra
Require
Import
proofmode_classes
.
(** Authoritative CMRA where the NON-authoritative parts can be fractional.
...
...
theories/algebra/functions.v
View file @
708b8ac0
From
stdpp
Require
Import
finite
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
updates
.
From
stdpp
Require
Import
finite
.
Set
Default
Proof
Using
"Type"
.
Definition
discrete_fun_insert
`
{
EqDecision
A
}
{
B
:
A
→
ofeT
}
...
...
theories/algebra/gmap.v
View file @
708b8ac0
From
iris
.
algebra
Require
Export
cmra
.
From
stdpp
Require
Export
list
gmap
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
updates
local_updates
proofmode_classes
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
algebra
Require
Import
proofmode_classes
.
Set
Default
Proof
Using
"Type"
.
Section
cofe
.
...
...
theories/algebra/gmultiset.v
View file @
708b8ac0
From
stdpp
Require
Export
sets
gmultiset
countable
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
From
stdpp
Require
Export
sets
gmultiset
countable
.
Set
Default
Proof
Using
"Type"
.
(* The multiset union CMRA *)
...
...
theories/algebra/gset.v
View file @
708b8ac0
From
stdpp
Require
Export
sets
gmap
mapset
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
From
stdpp
Require
Export
sets
gmap
mapset
.
Set
Default
Proof
Using
"Type"
.
(* The union CMRA *)
...
...
theories/algebra/list.v
View file @
708b8ac0
From
iris
.
algebra
Require
Export
cmra
.
From
stdpp
Require
Export
list
.
From
iris
.
base_logic
Require
Im
port
base_logic
.
From
iris
.
algebra
Require
Ex
port
cmra
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
From
iris
.
base_logic
Require
Import
base_logic
.
Set
Default
Proof
Using
"Type"
.
Section
cofe
.
...
...
theories/algebra/namespace_map.v
View file @
708b8ac0
From
iris
.
algebra
Require
Export
gmap
coPset
local_updates
.
From
stdpp
Require
Import
namespaces
.
From
iris
.
algebra
Require
Im
port
updates
.
From
iris
.
algebra
Require
Import
proofmode_classes
.
From
iris
.
algebra
Require
Ex
port
gmap
coPset
local_
updates
.
From
iris
.
algebra
Require
Import
updates
proofmode_classes
.
Set
Default
Proof
Using
"Type"
.
(** The camera [namespace_map A] over a camera [A] provides the connectives
...
...
theories/algebra/proofmode_classes.v
View file @
708b8ac0
From
iris
.
proofmode
Require
Export
classes
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
proofmode
Require
Export
classes
.
(* There are various versions of [IsOp] with different modes:
...
...
@@ -51,4 +51,4 @@ Proof. by constructor. Qed.
(* This one has a higher precendence than [is_op_op] so we get a [+] instead of
an [⋅]. *)
Global
Instance
is_op_plus
(
n1
n2
:
nat
)
:
IsOp
(
n1
+
n2
)
n1
n2
.
Proof
.
done
.
Qed
.
\ No newline at end of file
Proof
.
done
.
Qed
.
theories/algebra/ufrac_auth.v
View file @
708b8ac0
...
...
@@ -16,11 +16,9 @@ difference:
- We no longer have the [◯U{1} a] is the exclusive fragmental element (cf.
[frac_auth_frag_validN_op_1_l]).
*)
From
iris
.
algebra
Require
Export
auth
frac
.
From
iris
.
algebra
Require
Import
ufrac
.
From
iris
.
algebra
Require
Export
updates
local_updates
.
From
iris
.
algebra
Require
Import
proofmode_classes
.
From
Coq
Require
Import
QArith
Qcanon
.
From
iris
.
algebra
Require
Export
auth
frac
updates
local_updates
.
From
iris
.
algebra
Require
Import
ufrac
proofmode_classes
.
Definition
ufrac_authR
(
A
:
cmraT
)
:
cmraT
:
=
authR
(
optionUR
(
prodR
ufracR
A
)).
...
...
theories/base_logic/base_logic.v
View file @
708b8ac0
From
iris
.
base_logic
Require
Export
derived
proofmode
.
From
iris
.
bi
Require
Export
bi
.
From
iris
.
base_logic
Require
Export
derived
proofmode
.
Set
Default
Proof
Using
"Type"
.
(* The trick of having multiple [uPred] modules, which are all exported in
...
...
theories/base_logic/bi.v
View file @
708b8ac0
...
...
@@ -43,7 +43,7 @@ Proof.
-
exact
:
@
exist_intro
.
-
exact
:
@
exist_elim
.
-
exact
:
sep_mono
.
-
exact
:
True_sep_1
.
-
exact
:
True_sep_1
.
-
exact
:
True_sep_2
.
-
exact
:
sep_comm'
.
-
exact
:
sep_assoc'
.
...
...
theories/base_logic/bupd_alt.v
View file @
708b8ac0
From
iris
.
base_logic
Require
Export
base_logic
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
base_logic
Require
Export
base_logic
.
(** This file contains an alternative version of basic updates, that is
expression in terms of just the plain modality [■]. *)
...
...
theories/base_logic/derived.v
View file @
708b8ac0
From
iris
.
base_logic
Require
Export
bi
.
From
iris
.
bi
Require
Export
bi
.
From
iris
.
base_logic
Require
Export
bi
.
Set
Default
Proof
Using
"Type"
.
Import
bi
base_logic
.
bi
.
uPred
.
Import
bi
.
bi
base_logic
.
bi
.
uPred
.
(** Derived laws for Iris-specific primitive connectives (own, valid).
This file does NOT unseal! *)
...
...
theories/base_logic/lib/auth.v
View file @
708b8ac0
From
iris
.
base_logic
.
lib
Require
Ex
port
invariant
s
.
From
iris
.
proofmode
Require
Im
port
tactic
s
.
From
iris
.
algebra
Require
Export
auth
.
From
iris
.
algebra
Require
Import
gmap
.
From
iris
.
proofmode
Require
Im
port
tactic
s
.
From
iris
.
base_logic
.
lib
Require
Ex
port
invariant
s
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
...
...
theories/base_logic/lib/boxes.v
View file @
708b8ac0
From
iris
.
base_logic
.
lib
Require
Export
invariants
.
From
iris
.
algebra
Require
Import
excl
auth
gmap
agree
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Import
excl
auth
gmap
agree
.
From
iris
.
base_logic
.
lib
Require
Export
invariants
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
...
...
@@ -131,7 +131,7 @@ Proof.
iIntros
(??)
"[#HγQ Hinv] H"
.
iDestruct
"H"
as
(
Φ
)
"[#HeqP Hf]"
.
iExists
([
∗
map
]
γ
'
↦
_
∈
delete
γ
f
,
Φ
γ
'
)%
I
.
iInv
N
as
(
b
)
"[>Hγ _]"
.
iDestruct
(
big_
o
pM_delete
_
f
_
false
with
"Hf"
)
iDestruct
(
big_
se
pM_delete
_
f
_
false
with
"Hf"
)
as
"[[>Hγ' #[HγΦ ?]] ?]"
;
first
done
.
iDestruct
(
box_own_auth_agree
γ
b
false
with
"[-]"
)
as
%->
;
first
by
iFrame
.
iModIntro
.
iSplitL
"Hγ"
;
first
iExists
false
;
eauto
.
...
...
@@ -148,7 +148,7 @@ Lemma slice_fill E q f γ P Q :
Proof
.
iIntros
(??)
"#[HγQ Hinv] HQ H"
;
iDestruct
"H"
as
(
Φ
)
"[#HeqP Hf]"
.
iInv
N
as
(
b'
)
"[>Hγ _]"
.
iDestruct
(
big_
o
pM_delete
_
f
_
false
with
"Hf"
)
iDestruct
(
big_
se
pM_delete
_
f
_
false
with
"Hf"
)
as
"[[>Hγ' #[HγΦ Hinv']] ?]"
;
first
done
.
iMod
(
box_own_auth_update
γ
b'
false
true
with
"[$Hγ $Hγ']"
)
as
"[Hγ Hγ']"
.
iModIntro
.
iSplitL
"Hγ HQ"
;
first
(
iNext
;
iExists
true
;
by
iFrame
).
...
...
@@ -165,7 +165,7 @@ Lemma slice_empty E q f P Q γ :
Proof
.
iIntros
(??)
"#[HγQ Hinv] H"
;
iDestruct
"H"
as
(
Φ
)
"[#HeqP Hf]"
.
iInv
N
as
(
b
)
"[>Hγ HQ]"
.
iDestruct
(
big_
o
pM_delete
_
f
with
"Hf"
)
iDestruct
(
big_
se
pM_delete
_
f
with
"Hf"
)
as
"[[>Hγ' #[HγΦ Hinv']] ?]"
;
first
done
.
iDestruct
(
box_own_auth_agree
γ
b
true
with
"[-]"
)
as
%->
;
first
by
iFrame
.
iFrame
"HQ"
.
...
...
theories/base_logic/lib/cancelable_invariants.v
View file @
708b8ac0
From
iris
.
base_logic
.
lib
Require
Export
invariants
.
From
iris
.
bi
.
lib
Require
Import
fractional
.
From
iris
.
algebra
Require
Export
frac
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Export
frac
.
From
iris
.
base_logic
.
lib
Require
Export
invariants
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
...
...
theories/base_logic/lib/fancy_updates.v
View file @
708b8ac0
From
iris
.
base_logic
.
lib
Require
Export
own
.
From
stdpp
Require
Export
coPset
.
From
iris
.
base_logic
.
lib
Require
Import
wsat
.
From
iris
.
algebra
Require
Import
gmap
auth
agree
gset
coPset
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Import
gmap
auth
agree
gset
coPset
.
From
iris
.
base_logic
.
lib
Require
Export
own
.
From
iris
.
base_logic
.
lib
Require
Import
wsat
.
Set
Default
Proof
Using
"Type"
.
Export
invG
.
Import
uPred
.
...
...
theories/base_logic/lib/fancy_updates_from_vs.v
View file @
708b8ac0
(* This file shows that the fancy update can be encoded in terms of the
view shift, and that the laws of the fancy update can be derived from the
laws of the view shift. *)
From
iris
.
base_logic
Require
Export
base_logic
.
From
iris
.
proofmode
Require
Import
tactics
.
From
stdpp
Require
Export
coPset
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
base_logic
Require
Export
base_logic
.
Set
Default
Proof
Using
"Type*"
.
Section
fupd
.
...
...
theories/base_logic/lib/gen_heap.v
View file @
708b8ac0
From
iris
.
algebra
Require
Import
auth
gmap
frac
agree
namespace_map
.
From
stdpp
Require
Export
namespaces
.
From
iris
.
base_logic
.
lib
Require
Export
own
.
From
iris
.
bi
.
lib
Require
Import
fractional
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Import
auth
gmap
frac
agree
namespace_map
.
From
iris
.
base_logic
.
lib
Require
Export
own
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
...
...
theories/base_logic/lib/invariants.v
View file @
708b8ac0
From
iris
.
base_logic
.
lib
Require
Export
fancy_updates
.
From
stdpp
Require
Export
namespaces
.
From
iris
.
base_logic
.
lib
Require
Import
wsat
.
From
iris
.
algebra
Require
Import
gmap
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Import
gmap
.
From
iris
.
base_logic
.
lib
Require
Export
fancy_updates
.
From
iris
.
base_logic
.
lib
Require
Import
wsat
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
...
...
theories/base_logic/lib/iprop.v
View file @
708b8ac0
From
iris
.
base_logic
Require
Export
base_logic
.
From
iris
.
algebra
Require
Import
gmap
.
From
iris
.
algebra
Require
cofe_solver
.
From
iris
.
base_logic
Require
Export
base_logic
.
Set
Default
Proof
Using
"Type"
.
(** In this file we construct the type [iProp] of propositions of the Iris
...
...
theories/base_logic/lib/na_invariants.v
View file @
708b8ac0
From
iris
.
base_logic
.
lib
Require
Export
invariants
.
From
iris
.
algebra
Require
Import
gset
coPset
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Import
gset
coPset
.
From
iris
.
base_logic
.
lib
Require
Export
invariants
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
...
...
theories/base_logic/lib/own.v
View file @
708b8ac0
From
iris
.
algebra
Require
Import
functions
gmap
.
From
iris
.
algebra
Require
Import
functions
gmap
proofmode_classes
.
From
iris
.
base_logic
.
lib
Require
Export
iprop
.
From
iris
.
algebra
Require
Import
proofmode_classes
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
...
...
theories/base_logic/lib/proph_map.v
View file @
708b8ac0
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Import
auth
excl
list
gmap
.
From
iris
.
base_logic
.
lib
Require
Export
own
.
From
iris
.
proofmode
Require
Import
tactics
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
...
...
theories/base_logic/lib/saved_prop.v
View file @
708b8ac0
From
iris
.
base_logic
Require
Export
own
.
From
iris
.
algebra
Require
Import
agree
.
From
stdpp
Require
Import
gmap
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Import
agree
.
From
iris
.
base_logic
Require
Export
own
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
...
...
theories/base_logic/lib/sts.v
View file @
708b8ac0
From
iris
.
base_logic
.
lib
Require
Export
invariants
.
From
iris
.
algebra
Require
Export
sts
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Export
sts
.
From
iris
.
base_logic
.
lib
Require
Export
invariants
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
...
...
theories/base_logic/lib/viewshifts.v
View file @
708b8ac0
From
iris
.
base_logic
.
lib
Require
Export
invariants
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
base_logic
.
lib
Require
Export
invariants
.
Set
Default
Proof
Using
"Type"
.
Definition
vs
`
{!
invG
Σ
}
(
E1
E2
:
coPset
)
(
P
Q
:
iProp
Σ
)
:
iProp
Σ
:
=
...
...
theories/base_logic/lib/wsat.v
View file @
708b8ac0
From
iris
.
base_logic
.
lib
Require
Export
own
.
From
stdpp
Require
Export
coPset
.
From
iris
.
algebra
Require
Import
gmap
auth
agree
gset
coPset
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Import
gmap
auth
agree
gset
coPset
.
From
iris
.
base_logic
.
lib
Require
Export
own
.
Set
Default
Proof
Using
"Type"
.
(** All definitions in this file are internal to [fancy_updates] with the
...
...
@@ -129,9 +129,9 @@ Proof.
rewrite
/
ownI
/
wsat
-!
lock
.
iIntros
"(Hw & Hi & HiE)"
.
iDestruct
"Hw"
as
(
I
)
"[Hw HI]"
.
iDestruct
(
invariant_lookup
I
i
P
with
"[$]"
)
as
(
Q
?)
"#HPQ"
.
iDestruct
(
big_
o
pM_delete
_
_
i
with
"HI"
)
as
"[[[HQ $]|HiE'] HI]"
;
eauto
.
iDestruct
(
big_
se
pM_delete
_
_
i
with
"HI"
)
as
"[[[HQ $]|HiE'] HI]"
;
eauto
.
-
iSplitR
"HQ"
;
last
by
iNext
;
iRewrite
-
"HPQ"
.
iExists
I
.
iFrame
"Hw"
.
iApply
(
big_
o
pM_delete
_
_
i
)
;
eauto
.
iExists
I
.
iFrame
"Hw"
.
iApply
(
big_
se
pM_delete
_
_
i
)
;
eauto
.
iFrame
"HI"
;
eauto
.
-
iDestruct
(
ownE_singleton_twice
with
"[$HiE $HiE']"
)
as
%[].
Qed
.
...
...
@@ -140,9 +140,9 @@ Proof.
rewrite
/
ownI
/
wsat
-!
lock
.
iIntros
"(Hw & Hi & HP & HiD)"
.
iDestruct
"Hw"
as
(
I
)
"[Hw HI]"
.
iDestruct
(
invariant_lookup
with
"[$]"
)
as
(
Q
?)
"#HPQ"
.
iDestruct
(
big_
o
pM_delete
_
_
i
with
"HI"
)
as
"[[[HQ ?]|$] HI]"
;
eauto
.
iDestruct
(
big_
se
pM_delete
_
_
i
with
"HI"
)
as
"[[[HQ ?]|$] HI]"
;
eauto
.
-
iDestruct
(
ownD_singleton_twice
with
"[$]"
)
as
%[].
-
iExists
I
.
iFrame
"Hw"
.
iApply
(
big_
o
pM_delete
_
_
i
)
;
eauto
.
-
iExists
I
.
iFrame
"Hw"
.
iApply
(
big_
se
pM_delete
_
_
i
)
;
eauto
.
iFrame
"HI"
.
iLeft
.
iFrame
"HiD"
.
by
iNext
;
iRewrite
"HPQ"
.
Qed
.
...
...
@@ -165,7 +165,7 @@ Proof.
iModIntro
;
iExists
i
;
iSplit
;
[
done
|].
rewrite
/
ownI
;
iFrame
"HiP"
.
iExists
(<[
i
:
=
P
]>
I
)
;
iSplitL
"Hw"
.
{
by
rewrite
fmap_insert
insert_singleton_op
?lookup_fmap
?HIi
.
}
iApply
(
big_
o
pM_insert
_
I
)
;
first
done
.
iApply
(
big_
se
pM_insert
_
I
)
;
first
done
.
iFrame
"HI"
.
iLeft
.
by
rewrite
/
ownD
;
iFrame
.
Qed
.
...
...
@@ -188,7 +188,7 @@ Proof.
rewrite
-/(
ownD
_
).
iFrame
"HD"
.
iIntros
"HE"
.
iExists
(<[
i
:
=
P
]>
I
)
;
iSplitL
"Hw"
.
{
by
rewrite
fmap_insert
insert_singleton_op
?lookup_fmap
?HIi
.
}
iApply
(
big_
o
pM_insert
_
I
)
;
first
done
.
iApply
(
big_
se
pM_insert
_
I
)
;
first
done
.
iFrame
"HI"
.
by
iRight
.
Qed
.
End
wsat
.
...
...
theories/base_logic/proofmode.v
View file @
708b8ac0
From
iris
.
base_logic
Require
Export
derived
.
From
iris
.
algebra
Require
Import
proofmode_classes
.
From
iris
.
base_logic
Require
Export
derived
.
Import
base_logic
.
bi
.
uPred
.
...
...
theories/base_logic/upred.v
View file @
708b8ac0
From
iris
.
algebra
Require
Export
cmra
updates
.
From
iris
.
bi
Require
Import
notation
.
From
stdpp
Require
Import
finite
.
From
Coq
.
Init
Require
Import
Nat
.
From
iris
.
bi
Require
Import
notation
.
From
iris
.
algebra
Require
Export
cmra
updates
.
Set
Default
Proof
Using
"Type"
.
Local
Hint
Extern
1
(
_
≼
_
)
=>
etrans
;
[
eassumption
|]
:
core
.
Local
Hint
Extern
1
(
_
≼
_
)
=>
etrans
;
[|
eassumption
]
:
core
.
...
...
theories/bi/big_op.v
View file @
708b8ac0
From
iris
.
algebra
Require
Export
big_op
.
From
iris
.
bi
Require
Import
derived_laws_sbi
.
From
stdpp
Require
Import
countable
fin_sets
functions
.
From
iris
.
bi
Require
Import
derived_laws_sbi
.
From
iris
.
algebra
Require
Export
big_op
.
Set
Default
Proof
Using
"Type"
.
Import