Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Tej Chajed
iris
Commits
d6b49ab2
Commit
d6b49ab2
authored
Jan 05, 2017
by
Ralf Jung
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
more restrictive Proof Using hints in base_logic, algebra
parent
60d82286
Changes
49
Hide whitespace changes
Inline
Side-by-side
Showing
49 changed files
with
59 additions
and
54 deletions
+59
-54
theories/algebra/agree.v
theories/algebra/agree.v
+1
-1
theories/algebra/auth.v
theories/algebra/auth.v
+1
-1
theories/algebra/base.v
theories/algebra/base.v
+1
-1
theories/algebra/cmra.v
theories/algebra/cmra.v
+2
-1
theories/algebra/cmra_big_op.v
theories/algebra/cmra_big_op.v
+1
-1
theories/algebra/cmra_tactics.v
theories/algebra/cmra_tactics.v
+1
-1
theories/algebra/coPset.v
theories/algebra/coPset.v
+1
-1
theories/algebra/cofe_solver.v
theories/algebra/cofe_solver.v
+1
-1
theories/algebra/csum.v
theories/algebra/csum.v
+1
-1
theories/algebra/deprecated.v
theories/algebra/deprecated.v
+1
-1
theories/algebra/dra.v
theories/algebra/dra.v
+1
-1
theories/algebra/excl.v
theories/algebra/excl.v
+1
-1
theories/algebra/frac.v
theories/algebra/frac.v
+1
-1
theories/algebra/gmap.v
theories/algebra/gmap.v
+2
-1
theories/algebra/gset.v
theories/algebra/gset.v
+2
-1
theories/algebra/iprod.v
theories/algebra/iprod.v
+1
-1
theories/algebra/list.v
theories/algebra/list.v
+1
-1
theories/algebra/local_updates.v
theories/algebra/local_updates.v
+1
-1
theories/algebra/ofe.v
theories/algebra/ofe.v
+2
-1
theories/algebra/sts.v
theories/algebra/sts.v
+1
-1
theories/algebra/updates.v
theories/algebra/updates.v
+2
-1
theories/algebra/vector.v
theories/algebra/vector.v
+1
-1
theories/base_logic/base_logic.v
theories/base_logic/base_logic.v
+1
-1
theories/base_logic/big_op.v
theories/base_logic/big_op.v
+1
-1
theories/base_logic/deprecated.v
theories/base_logic/deprecated.v
+1
-1
theories/base_logic/derived.v
theories/base_logic/derived.v
+1
-1
theories/base_logic/double_negation.v
theories/base_logic/double_negation.v
+2
-2
theories/base_logic/hlist.v
theories/base_logic/hlist.v
+1
-1
theories/base_logic/lib/auth.v
theories/base_logic/lib/auth.v
+3
-3
theories/base_logic/lib/boxes.v
theories/base_logic/lib/boxes.v
+1
-1
theories/base_logic/lib/cancelable_invariants.v
theories/base_logic/lib/cancelable_invariants.v
+1
-1
theories/base_logic/lib/core.v
theories/base_logic/lib/core.v
+1
-1
theories/base_logic/lib/counter_examples.v
theories/base_logic/lib/counter_examples.v
+3
-3
theories/base_logic/lib/fancy_updates.v
theories/base_logic/lib/fancy_updates.v
+1
-1
theories/base_logic/lib/fractional.v
theories/base_logic/lib/fractional.v
+1
-1
theories/base_logic/lib/gen_heap.v
theories/base_logic/lib/gen_heap.v
+1
-1
theories/base_logic/lib/invariants.v
theories/base_logic/lib/invariants.v
+1
-1
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
+1
-1
theories/base_logic/lib/namespaces.v
theories/base_logic/lib/namespaces.v
+1
-1
theories/base_logic/lib/own.v
theories/base_logic/lib/own.v
+1
-1
theories/base_logic/lib/saved_prop.v
theories/base_logic/lib/saved_prop.v
+1
-1
theories/base_logic/lib/sts.v
theories/base_logic/lib/sts.v
+1
-1
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
+1
-1
theories/base_logic/primitive.v
theories/base_logic/primitive.v
+1
-1
theories/base_logic/soundness.v
theories/base_logic/soundness.v
+1
-1
theories/base_logic/tactics.v
theories/base_logic/tactics.v
+1
-1
theories/base_logic/upred.v
theories/base_logic/upred.v
+1
-1
No files found.
theories/algebra/agree.v
View file @
d6b49ab2
...
@@ -208,7 +208,7 @@ Section list_theory.
...
@@ -208,7 +208,7 @@ Section list_theory.
Lemma
list_agrees_fmap
`
{
Equivalence
_
R'
}
al
:
Lemma
list_agrees_fmap
`
{
Equivalence
_
R'
}
al
:
list_agrees
R
al
→
list_agrees
R'
(
f
<$>
al
).
list_agrees
R
al
→
list_agrees
R'
(
f
<$>
al
).
Proof
using
All
.
Proof
using
Type
*
.
move
=>
/
list_agrees_alt
Hl
.
apply
(
list_agrees_alt
R'
)
=>
a'
b'
.
move
=>
/
list_agrees_alt
Hl
.
apply
(
list_agrees_alt
R'
)
=>
a'
b'
.
intros
(
a
&
->
&
Ha
)%
elem_of_list_fmap
(
b
&
->
&
Hb
)%
elem_of_list_fmap
.
intros
(
a
&
->
&
Ha
)%
elem_of_list_fmap
(
b
&
->
&
Hb
)%
elem_of_list_fmap
.
apply
Hf
.
exact
:
Hl
.
apply
Hf
.
exact
:
Hl
.
...
...
theories/algebra/auth.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
excl
local_updates
.
From
iris
.
algebra
Require
Export
excl
local_updates
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
proofmode
Require
Import
classes
.
From
iris
.
proofmode
Require
Import
classes
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Record
auth
(
A
:
Type
)
:
=
Auth
{
authoritative
:
excl'
A
;
auth_own
:
A
}.
Record
auth
(
A
:
Type
)
:
=
Auth
{
authoritative
:
excl'
A
;
auth_own
:
A
}.
Add
Printing
Constructor
auth
.
Add
Printing
Constructor
auth
.
...
...
theories/algebra/base.v
View file @
d6b49ab2
From
mathcomp
Require
Export
ssreflect
.
From
mathcomp
Require
Export
ssreflect
.
From
iris
.
prelude
Require
Export
prelude
.
From
iris
.
prelude
Require
Export
prelude
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Global
Set
Bullet
Behavior
"Strict Subproofs"
.
Global
Set
Bullet
Behavior
"Strict Subproofs"
.
Global
Open
Scope
general_if_scope
.
Global
Open
Scope
general_if_scope
.
Ltac
done
:
=
prelude
.
tactics
.
done
.
Ltac
done
:
=
prelude
.
tactics
.
done
.
theories/algebra/cmra.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
ofe
.
From
iris
.
algebra
Require
Export
ofe
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Class
PCore
(
A
:
Type
)
:
=
pcore
:
A
→
option
A
.
Class
PCore
(
A
:
Type
)
:
=
pcore
:
A
→
option
A
.
Instance
:
Params
(@
pcore
)
2
.
Instance
:
Params
(@
pcore
)
2
.
...
@@ -428,6 +428,7 @@ Qed.
...
@@ -428,6 +428,7 @@ Qed.
(** ** Total core *)
(** ** Total core *)
Section
total_core
.
Section
total_core
.
Set
Default
Proof
Using
"Type*"
.
Context
`
{
CMRATotal
A
}.
Context
`
{
CMRATotal
A
}.
Lemma
cmra_core_l
x
:
core
x
⋅
x
≡
x
.
Lemma
cmra_core_l
x
:
core
x
⋅
x
≡
x
.
...
...
theories/algebra/cmra_big_op.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
cmra
list
.
From
iris
.
algebra
Require
Export
cmra
list
.
From
iris
.
prelude
Require
Import
functions
gmap
gmultiset
.
From
iris
.
prelude
Require
Import
functions
gmap
gmultiset
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(** The operator [ [⋅] Ps ] folds [⋅] over the list [Ps]. This operator is not a
(** The operator [ [⋅] Ps ] folds [⋅] over the list [Ps]. This operator is not a
quantifier, so it binds strongly.
quantifier, so it binds strongly.
...
...
theories/algebra/cmra_tactics.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
cmra_big_op
.
From
iris
.
algebra
Require
Import
cmra_big_op
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(** * Simple solver for validity and inclusion by reflection *)
(** * Simple solver for validity and inclusion by reflection *)
Module
ra_reflection
.
Section
ra_reflection
.
Module
ra_reflection
.
Section
ra_reflection
.
...
...
theories/algebra/coPset.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
From
iris
.
prelude
Require
Export
collections
coPset
.
From
iris
.
prelude
Require
Export
collections
coPset
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(** This is pretty much the same as algebra/gset, but I was not able to
(** This is pretty much the same as algebra/gset, but I was not able to
generalize the construction without breaking canonical structures. *)
generalize the construction without breaking canonical structures. *)
...
...
theories/algebra/cofe_solver.v
View file @
d6b49ab2
...
@@ -205,7 +205,7 @@ Instance fold_ne : Proper (dist n ==> dist n) fold.
...
@@ -205,7 +205,7 @@ Instance fold_ne : Proper (dist n ==> dist n) fold.
Proof
.
by
intros
n
X
Y
HXY
k
;
rewrite
/
fold
/=
HXY
.
Qed
.
Proof
.
by
intros
n
X
Y
HXY
k
;
rewrite
/
fold
/=
HXY
.
Qed
.
Theorem
result
:
solution
F
.
Theorem
result
:
solution
F
.
Proof
using
All
.
Proof
using
Type
*
.
apply
(
Solution
F
T
_
(
CofeMor
unfold
)
(
CofeMor
fold
)).
apply
(
Solution
F
T
_
(
CofeMor
unfold
)
(
CofeMor
fold
)).
-
move
=>
X
/=.
rewrite
equiv_dist
=>
n
k
;
rewrite
/
unfold
/
fold
/=.
-
move
=>
X
/=.
rewrite
equiv_dist
=>
n
k
;
rewrite
/
unfold
/
fold
/=.
rewrite
-
g_tower
-(
gg_tower
_
n
)
;
apply
(
_
:
Proper
(
_
==>
_
)
(
g
_
)).
rewrite
-
g_tower
-(
gg_tower
_
n
)
;
apply
(
_
:
Proper
(
_
==>
_
)
(
g
_
)).
...
...
theories/algebra/csum.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
algebra
Require
Import
local_updates
.
From
iris
.
algebra
Require
Import
local_updates
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Local
Arguments
pcore
_
_
!
_
/.
Local
Arguments
pcore
_
_
!
_
/.
Local
Arguments
cmra_pcore
_
!
_
/.
Local
Arguments
cmra_pcore
_
!
_
/.
Local
Arguments
validN
_
_
_
!
_
/.
Local
Arguments
validN
_
_
_
!
_
/.
...
...
theories/algebra/deprecated.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Import
ofe
cmra
.
From
iris
.
algebra
Require
Import
ofe
cmra
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(* Old notation for backwards compatibility. *)
(* Old notation for backwards compatibility. *)
...
...
theories/algebra/dra.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
cmra
updates
.
From
iris
.
algebra
Require
Export
cmra
updates
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Record
DRAMixin
A
`
{
Equiv
A
,
Core
A
,
Disjoint
A
,
Op
A
,
Valid
A
}
:
=
{
Record
DRAMixin
A
`
{
Equiv
A
,
Core
A
,
Disjoint
A
,
Op
A
,
Valid
A
}
:
=
{
(* setoids *)
(* setoids *)
...
...
theories/algebra/excl.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
base_logic
Require
Import
base_logic
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Local
Arguments
validN
_
_
_
!
_
/.
Local
Arguments
validN
_
_
_
!
_
/.
Local
Arguments
valid
_
_
!
_
/.
Local
Arguments
valid
_
_
!
_
/.
...
...
theories/algebra/frac.v
View file @
d6b49ab2
From
Coq
.
QArith
Require
Import
Qcanon
.
From
Coq
.
QArith
Require
Import
Qcanon
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Notation
frac
:
=
Qp
(
only
parsing
).
Notation
frac
:
=
Qp
(
only
parsing
).
...
...
theories/algebra/gmap.v
View file @
d6b49ab2
...
@@ -2,7 +2,7 @@ From iris.algebra Require Export cmra.
...
@@ -2,7 +2,7 @@ From iris.algebra Require Export cmra.
From
iris
.
prelude
Require
Export
gmap
.
From
iris
.
prelude
Require
Export
gmap
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
base_logic
Require
Import
base_logic
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Section
cofe
.
Section
cofe
.
Context
`
{
Countable
K
}
{
A
:
ofeT
}.
Context
`
{
Countable
K
}
{
A
:
ofeT
}.
...
@@ -334,6 +334,7 @@ Proof.
...
@@ -334,6 +334,7 @@ Proof.
Qed
.
Qed
.
Section
freshness
.
Section
freshness
.
Set
Default
Proof
Using
"Type*"
.
Context
`
{
Fresh
K
(
gset
K
),
!
FreshSpec
K
(
gset
K
)}.
Context
`
{
Fresh
K
(
gset
K
),
!
FreshSpec
K
(
gset
K
)}.
Lemma
alloc_updateP_strong
(
Q
:
gmap
K
A
→
Prop
)
(
I
:
gset
K
)
m
x
:
Lemma
alloc_updateP_strong
(
Q
:
gmap
K
A
→
Prop
)
(
I
:
gset
K
)
m
x
:
✓
x
→
(
∀
i
,
m
!!
i
=
None
→
i
∉
I
→
Q
(<[
i
:
=
x
]>
m
))
→
m
~~>
:
Q
.
✓
x
→
(
∀
i
,
m
!!
i
=
None
→
i
∉
I
→
Q
(<[
i
:
=
x
]>
m
))
→
m
~~>
:
Q
.
...
...
theories/algebra/gset.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
From
iris
.
prelude
Require
Export
collections
gmap
mapset
.
From
iris
.
prelude
Require
Export
collections
gmap
mapset
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(* The union CMRA *)
(* The union CMRA *)
Section
gset
.
Section
gset
.
...
@@ -155,6 +155,7 @@ Section gset_disj.
...
@@ -155,6 +155,7 @@ Section gset_disj.
Proof
.
eauto
using
gset_disj_alloc_empty_updateP_strong
.
Qed
.
Proof
.
eauto
using
gset_disj_alloc_empty_updateP_strong
.
Qed
.
Section
fresh_updates
.
Section
fresh_updates
.
Set
Default
Proof
Using
"Type*"
.
Context
`
{
Fresh
K
(
gset
K
),
!
FreshSpec
K
(
gset
K
)}.
Context
`
{
Fresh
K
(
gset
K
),
!
FreshSpec
K
(
gset
K
)}.
Lemma
gset_disj_alloc_updateP
(
Q
:
gset_disj
K
→
Prop
)
X
:
Lemma
gset_disj_alloc_updateP
(
Q
:
gset_disj
K
→
Prop
)
X
:
...
...
theories/algebra/iprod.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
prelude
Require
Import
finite
.
From
iris
.
prelude
Require
Import
finite
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(** * Indexed product *)
(** * Indexed product *)
(** Need to put this in a definition to make canonical structures to work. *)
(** Need to put this in a definition to make canonical structures to work. *)
...
...
theories/algebra/list.v
View file @
d6b49ab2
...
@@ -2,7 +2,7 @@ From iris.algebra Require Export cmra.
...
@@ -2,7 +2,7 @@ From iris.algebra Require Export cmra.
From
iris
.
prelude
Require
Export
list
.
From
iris
.
prelude
Require
Export
list
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
From
iris
.
algebra
Require
Import
updates
local_updates
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Section
cofe
.
Section
cofe
.
Context
{
A
:
ofeT
}.
Context
{
A
:
ofeT
}.
...
...
theories/algebra/local_updates.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(** * Local updates *)
(** * Local updates *)
Definition
local_update
{
A
:
cmraT
}
(
x
y
:
A
*
A
)
:
=
∀
n
mz
,
Definition
local_update
{
A
:
cmraT
}
(
x
y
:
A
*
A
)
:
=
∀
n
mz
,
...
...
theories/algebra/ofe.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
base
.
From
iris
.
algebra
Require
Export
base
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(** This files defines (a shallow embedding of) the category of OFEs:
(** This files defines (a shallow embedding of) the category of OFEs:
Complete ordered families of equivalences. This is a cartesian closed
Complete ordered families of equivalences. This is a cartesian closed
...
@@ -159,6 +159,7 @@ Instance const_contractive {A B : ofeT} (x : A) : Contractive (@const A B x).
...
@@ -159,6 +159,7 @@ Instance const_contractive {A B : ofeT} (x : A) : Contractive (@const A B x).
Proof
.
by
intros
n
y1
y2
.
Qed
.
Proof
.
by
intros
n
y1
y2
.
Qed
.
Section
contractive
.
Section
contractive
.
Set
Default
Proof
Using
"Type*"
.
Context
{
A
B
:
ofeT
}
(
f
:
A
→
B
)
`
{!
Contractive
f
}.
Context
{
A
B
:
ofeT
}
(
f
:
A
→
B
)
`
{!
Contractive
f
}.
Implicit
Types
x
y
:
A
.
Implicit
Types
x
y
:
A
.
...
...
theories/algebra/sts.v
View file @
d6b49ab2
From
iris
.
prelude
Require
Export
set
.
From
iris
.
prelude
Require
Export
set
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
dra
.
From
iris
.
algebra
Require
Import
dra
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Local
Arguments
valid
_
_
!
_
/.
Local
Arguments
valid
_
_
!
_
/.
Local
Arguments
op
_
_
!
_
!
_
/.
Local
Arguments
op
_
_
!
_
!
_
/.
Local
Arguments
core
_
_
!
_
/.
Local
Arguments
core
_
_
!
_
/.
...
...
theories/algebra/updates.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(** * Frame preserving updates *)
(** * Frame preserving updates *)
(* This quantifies over [option A] for the frame. That is necessary to
(* This quantifies over [option A] for the frame. That is necessary to
...
@@ -86,6 +86,7 @@ Qed.
...
@@ -86,6 +86,7 @@ Qed.
(** ** Frame preserving updates for total CMRAs *)
(** ** Frame preserving updates for total CMRAs *)
Section
total_updates
.
Section
total_updates
.
Set
Default
Proof
Using
"Type*"
.
Context
`
{
CMRATotal
A
}.
Context
`
{
CMRATotal
A
}.
Lemma
cmra_total_updateP
x
(
P
:
A
→
Prop
)
:
Lemma
cmra_total_updateP
x
(
P
:
A
→
Prop
)
:
...
...
theories/algebra/vector.v
View file @
d6b49ab2
From
iris
.
prelude
Require
Export
vector
.
From
iris
.
prelude
Require
Export
vector
.
From
iris
.
algebra
Require
Export
ofe
.
From
iris
.
algebra
Require
Export
ofe
.
From
iris
.
algebra
Require
Import
list
.
From
iris
.
algebra
Require
Import
list
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Section
ofe
.
Section
ofe
.
Context
{
A
:
ofeT
}.
Context
{
A
:
ofeT
}.
...
...
theories/base_logic/base_logic.v
View file @
d6b49ab2
From
iris
.
base_logic
Require
Export
derived
.
From
iris
.
base_logic
Require
Export
derived
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Module
Import
uPred
.
Module
Import
uPred
.
Export
upred
.
uPred
.
Export
upred
.
uPred
.
...
...
theories/base_logic/big_op.v
View file @
d6b49ab2
From
iris
.
algebra
Require
Export
list
cmra_big_op
.
From
iris
.
algebra
Require
Export
list
cmra_big_op
.
From
iris
.
base_logic
Require
Export
base_logic
.
From
iris
.
base_logic
Require
Export
base_logic
.
From
iris
.
prelude
Require
Import
gmap
fin_collections
gmultiset
functions
.
From
iris
.
prelude
Require
Import
gmap
fin_collections
gmultiset
functions
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Import
uPred
.
(* We make use of the bigops on CMRAs, so we first define a (somewhat ad-hoc)
(* We make use of the bigops on CMRAs, so we first define a (somewhat ad-hoc)
...
...
theories/base_logic/deprecated.v
View file @
d6b49ab2
From
iris
.
base_logic
Require
Import
primitive
.
From
iris
.
base_logic
Require
Import
primitive
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(* Deprecated 2016-11-22. Use ⌜φ⌝ instead. *)
(* Deprecated 2016-11-22. Use ⌜φ⌝ instead. *)
Notation
"■ φ"
:
=
(
uPred_pure
φ
%
C
%
type
)
Notation
"■ φ"
:
=
(
uPred_pure
φ
%
C
%
type
)
...
...
theories/base_logic/derived.v
View file @
d6b49ab2
From
iris
.
base_logic
Require
Export
primitive
.
From
iris
.
base_logic
Require
Export
primitive
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
upred
.
uPred
primitive
.
uPred
.
Import
upred
.
uPred
primitive
.
uPred
.
Definition
uPred_iff
{
M
}
(
P
Q
:
uPred
M
)
:
uPred
M
:
=
((
P
→
Q
)
∧
(
Q
→
P
))%
I
.
Definition
uPred_iff
{
M
}
(
P
Q
:
uPred
M
)
:
uPred
M
:
=
((
P
→
Q
)
∧
(
Q
→
P
))%
I
.
...
...
theories/base_logic/double_negation.v
View file @
d6b49ab2
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
base_logic
Require
Import
base_logic
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(* In this file we show that the bupd can be thought of a kind of
(* In this file we show that the bupd can be thought of a kind of
step-indexed double-negation when our meta-logic is classical *)
step-indexed double-negation when our meta-logic is classical *)
...
@@ -274,7 +274,7 @@ Qed.
...
@@ -274,7 +274,7 @@ Qed.
Section
classical
.
Section
classical
.
Context
(
not_all_not_ex
:
∀
(
P
:
M
→
Prop
),
¬
(
∀
n
:
M
,
¬
P
n
)
→
∃
n
:
M
,
P
n
).
Context
(
not_all_not_ex
:
∀
(
P
:
M
→
Prop
),
¬
(
∀
n
:
M
,
¬
P
n
)
→
∃
n
:
M
,
P
n
).
Lemma
nnupd_bupd
P
:
(|=
n
=>
P
)
⊢
(|==>
P
).
Lemma
nnupd_bupd
P
:
(|=
n
=>
P
)
⊢
(|==>
P
).
Proof
.
Proof
using
Type
*
.
rewrite
/
uPred_nnupd
.
rewrite
/
uPred_nnupd
.
split
.
uPred
.
unseal
;
red
;
rewrite
//=.
split
.
uPred
.
unseal
;
red
;
rewrite
//=.
intros
n
x
?
Hforall
k
yf
Hle
?.
intros
n
x
?
Hforall
k
yf
Hle
?.
...
...
theories/base_logic/hlist.v
View file @
d6b49ab2
From
iris
.
prelude
Require
Export
hlist
.
From
iris
.
prelude
Require
Export
hlist
.
From
iris
.
base_logic
Require
Export
base_logic
.
From
iris
.
base_logic
Require
Export
base_logic
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Import
uPred
.
Fixpoint
uPred_hexist
{
M
As
}
:
himpl
As
(
uPred
M
)
→
uPred
M
:
=
Fixpoint
uPred_hexist
{
M
As
}
:
himpl
As
(
uPred
M
)
→
uPred
M
:
=
...
...
theories/base_logic/lib/auth.v
View file @
d6b49ab2
...
@@ -3,7 +3,7 @@ From iris.algebra Require Export auth.
...
@@ -3,7 +3,7 @@ From iris.algebra Require Export auth.
From
iris
.
algebra
Require
Import
gmap
.
From
iris
.
algebra
Require
Import
gmap
.
From
iris
.
base_logic
Require
Import
big_op
.
From
iris
.
base_logic
Require
Import
big_op
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
proofmode
Require
Import
tactics
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Import
uPred
.
(* The CMRA we need. *)
(* The CMRA we need. *)
...
@@ -117,7 +117,7 @@ Section auth.
...
@@ -117,7 +117,7 @@ Section auth.
▷
auth_inv
γ
f
φ
∗
auth_own
γ
a
={
E
}=
∗
∃
t
,
▷
auth_inv
γ
f
φ
∗
auth_own
γ
a
={
E
}=
∗
∃
t
,
⌜
a
≼
f
t
⌝
∗
▷
φ
t
∗
∀
u
b
,
⌜
a
≼
f
t
⌝
∗
▷
φ
t
∗
∀
u
b
,
⌜
(
f
t
,
a
)
~l
~>
(
f
u
,
b
)
⌝
∗
▷
φ
u
={
E
}=
∗
▷
auth_inv
γ
f
φ
∗
auth_own
γ
b
.
⌜
(
f
t
,
a
)
~l
~>
(
f
u
,
b
)
⌝
∗
▷
φ
u
={
E
}=
∗
▷
auth_inv
γ
f
φ
∗
auth_own
γ
b
.
Proof
.
Proof
using
Type
*
.
iIntros
"[Hinv Hγf]"
.
rewrite
/
auth_inv
/
auth_own
.
iIntros
"[Hinv Hγf]"
.
rewrite
/
auth_inv
/
auth_own
.
iDestruct
"Hinv"
as
(
t
)
"[>Hγa Hφ]"
.
iDestruct
"Hinv"
as
(
t
)
"[>Hγa Hφ]"
.
iModIntro
.
iExists
t
.
iModIntro
.
iExists
t
.
...
@@ -133,7 +133,7 @@ Section auth.
...
@@ -133,7 +133,7 @@ Section auth.
auth_ctx
γ
N
f
φ
∗
auth_own
γ
a
={
E
,
E
∖↑
N
}=
∗
∃
t
,
auth_ctx
γ
N
f
φ
∗
auth_own
γ
a
={
E
,
E
∖↑
N
}=
∗
∃
t
,
⌜
a
≼
f
t
⌝
∗
▷
φ
t
∗
∀
u
b
,
⌜
a
≼
f
t
⌝
∗
▷
φ
t
∗
∀
u
b
,
⌜
(
f
t
,
a
)
~l
~>
(
f
u
,
b
)
⌝
∗
▷
φ
u
={
E
∖↑
N
,
E
}=
∗
auth_own
γ
b
.
⌜
(
f
t
,
a
)
~l
~>
(
f
u
,
b
)
⌝
∗
▷
φ
u
={
E
∖↑
N
,
E
}=
∗
auth_own
γ
b
.
Proof
.
Proof
using
Type
*
.
iIntros
(?)
"[#? Hγf]"
.
rewrite
/
auth_ctx
.
iInv
N
as
"Hinv"
"Hclose"
.
iIntros
(?)
"[#? Hγf]"
.
rewrite
/
auth_ctx
.
iInv
N
as
"Hinv"
"Hclose"
.
(* The following is essentially a very trivial composition of the accessors
(* The following is essentially a very trivial composition of the accessors
[auth_acc] and [inv_open] -- but since we don't have any good support
[auth_acc] and [inv_open] -- but since we don't have any good support
...
...
theories/base_logic/lib/boxes.v
View file @
d6b49ab2
...
@@ -2,7 +2,7 @@ From iris.base_logic.lib Require Export invariants.
...
@@ -2,7 +2,7 @@ From iris.base_logic.lib Require Export invariants.
From
iris
.
algebra
Require
Import
auth
gmap
agree
.
From
iris
.
algebra
Require
Import
auth
gmap
agree
.
From
iris
.
base_logic
Require
Import
big_op
.
From
iris
.
base_logic
Require
Import
big_op
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
proofmode
Require
Import
tactics
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Import
uPred
.
(** The CMRAs we need. *)
(** The CMRAs we need. *)
...
...
theories/base_logic/lib/cancelable_invariants.v
View file @
d6b49ab2
From
iris
.
base_logic
.
lib
Require
Export
invariants
fractional
.
From
iris
.
base_logic
.
lib
Require
Export
invariants
fractional
.
From
iris
.
algebra
Require
Export
frac
.
From
iris
.
algebra
Require
Export
frac
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
proofmode
Require
Import
tactics
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Import
uPred
.
Class
cinvG
Σ
:
=
cinv_inG
:
>
inG
Σ
fracR
.
Class
cinvG
Σ
:
=
cinv_inG
:
>
inG
Σ
fracR
.
...
...
theories/base_logic/lib/core.v
View file @
d6b49ab2
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
base_logic
Require
Import
base_logic
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
proofmode
Require
Import
tactics
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Import
uPred
.
(** The "core" of an assertion is its maximal persistent part.
(** The "core" of an assertion is its maximal persistent part.
...
...
theories/base_logic/lib/counter_examples.v
View file @
d6b49ab2
From
iris
.
base_logic
Require
Import
base_logic
soundness
.
From
iris
.
base_logic
Require
Import
base_logic
soundness
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
proofmode
Require
Import
tactics
.
Set
Default
Proof
Using
"
All
"
.
Set
Default
Proof
Using
"
Type*
"
.
(** This proves that we need the ▷ in a "Saved Proposition" construction with
(** This proves that we need the ▷ in a "Saved Proposition" construction with
name-dependent allocation. *)
name-dependent allocation. *)
...
@@ -39,7 +39,7 @@ Module savedprop. Section savedprop.
...
@@ -39,7 +39,7 @@ Module savedprop. Section savedprop.
Qed
.
Qed
.
Lemma
contradiction
:
False
.
Lemma
contradiction
:
False
.
Proof
.
Proof
using
All
.
apply
(@
soundness
M
False
1
)
;
simpl
.
apply
(@
soundness
M
False
1
)
;
simpl
.
iIntros
""
.
iMod
A_alloc
as
(
i
)
"#H"
.
iIntros
""
.
iMod
A_alloc
as
(
i
)
"#H"
.
iPoseProof
(
saved_NA
with
"H"
)
as
"HN"
.
iPoseProof
(
saved_NA
with
"H"
)
as
"HN"
.
...
@@ -186,7 +186,7 @@ Module inv. Section inv.
...
@@ -186,7 +186,7 @@ Module inv. Section inv.
Qed
.
Qed
.
Lemma
contradiction
:
False
.
Lemma
contradiction
:
False
.
Proof
.