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
George Pirlea
Iris
Commits
da93f357
Commit
da93f357
authored
Mar 05, 2019
by
Ralf Jung
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use ! when possible to avoid overzealous generalization
parent
38abc449
Changes
52
Hide whitespace changes
Inline
Side-by-side
Showing
52 changed files
with
217 additions
and
216 deletions
+217
-216
tests/algebra.v
tests/algebra.v
+1
-1
tests/heap_lang.ref
tests/heap_lang.ref
+12
-12
tests/heap_lang.v
tests/heap_lang.v
+3
-3
tests/heap_lang2.ref
tests/heap_lang2.ref
+1
-1
tests/heap_lang2.v
tests/heap_lang2.v
+1
-1
tests/ipm_paper.v
tests/ipm_paper.v
+1
-1
tests/proofmode.ref
tests/proofmode.ref
+1
-1
tests/proofmode.v
tests/proofmode.v
+3
-3
tests/proofmode_iris.ref
tests/proofmode_iris.ref
+24
-24
tests/proofmode_iris.v
tests/proofmode_iris.v
+2
-2
theories/algebra/agree.v
theories/algebra/agree.v
+1
-1
theories/algebra/auth.v
theories/algebra/auth.v
+4
-4
theories/algebra/excl.v
theories/algebra/excl.v
+1
-1
theories/algebra/gmap.v
theories/algebra/gmap.v
+1
-1
theories/algebra/gset.v
theories/algebra/gset.v
+1
-1
theories/algebra/list.v
theories/algebra/list.v
+2
-2
theories/base_logic/bi.v
theories/base_logic/bi.v
+1
-1
theories/base_logic/derived.v
theories/base_logic/derived.v
+1
-1
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
+2
-2
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
+14
-14
theories/base_logic/lib/gen_heap.v
theories/base_logic/lib/gen_heap.v
+3
-3
theories/base_logic/lib/invariants.v
theories/base_logic/lib/invariants.v
+2
-2
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
+9
-9
theories/base_logic/lib/saved_prop.v
theories/base_logic/lib/saved_prop.v
+12
-12
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
+2
-2
theories/base_logic/lib/wsat.v
theories/base_logic/lib/wsat.v
+6
-6
theories/base_logic/proofmode.v
theories/base_logic/proofmode.v
+1
-1
theories/base_logic/upred.v
theories/base_logic/upred.v
+2
-2
theories/heap_lang/adequacy.v
theories/heap_lang/adequacy.v
+2
-2
theories/heap_lang/lib/assert.v
theories/heap_lang/lib/assert.v
+2
-2
theories/heap_lang/lifting.v
theories/heap_lang/lifting.v
+3
-3
theories/heap_lang/proofmode.v
theories/heap_lang/proofmode.v
+9
-9
theories/heap_lang/proph_map.v
theories/heap_lang/proph_map.v
+3
-3
theories/heap_lang/total_adequacy.v
theories/heap_lang/total_adequacy.v
+2
-2
theories/program_logic/adequacy.v
theories/program_logic/adequacy.v
+11
-11
theories/program_logic/atomic.v
theories/program_logic/atomic.v
+2
-2
theories/program_logic/ectx_language.v
theories/program_logic/ectx_language.v
+1
-1
theories/program_logic/ectx_lifting.v
theories/program_logic/ectx_lifting.v
+1
-1
theories/program_logic/ectxi_language.v
theories/program_logic/ectxi_language.v
+2
-2
theories/program_logic/hoare.v
theories/program_logic/hoare.v
+3
-3
theories/program_logic/language.v
theories/program_logic/language.v
+8
-7
theories/program_logic/lifting.v
theories/program_logic/lifting.v
+6
-6
theories/program_logic/ownp.v
theories/program_logic/ownp.v
+10
-10
theories/program_logic/total_adequacy.v
theories/program_logic/total_adequacy.v
+3
-3
theories/program_logic/total_ectx_lifting.v
theories/program_logic/total_ectx_lifting.v
+1
-1
theories/program_logic/total_lifting.v
theories/program_logic/total_lifting.v
+4
-4
theories/program_logic/total_weakestpre.v
theories/program_logic/total_weakestpre.v
+12
-12
theories/program_logic/weakestpre.v
theories/program_logic/weakestpre.v
+10
-10
No files found.
tests/algebra.v
View file @
da93f357
From
iris
.
base_logic
.
lib
Require
Import
invariants
.
From
iris
.
base_logic
.
lib
Require
Import
invariants
.
Section
tests
.
Section
tests
.
Context
`
{
invG
Σ
}.
Context
`
{
!
invG
Σ
}.
Program
Definition
test
:
(
iProp
Σ
-
n
>
iProp
Σ
)
-
n
>
(
iProp
Σ
-
n
>
iProp
Σ
)
:
=
Program
Definition
test
:
(
iProp
Σ
-
n
>
iProp
Σ
)
-
n
>
(
iProp
Σ
-
n
>
iProp
Σ
)
:
=
λ
ne
P
v
,
(
▷
(
P
v
))%
I
.
λ
ne
P
v
,
(
▷
(
P
v
))%
I
.
...
...
tests/heap_lang.ref
View file @
da93f357
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
E : coPset
E : coPset
============================
============================
--------------------------------------∗
--------------------------------------∗
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
E : coPset
E : coPset
l : loc
l : loc
============================
============================
...
@@ -21,7 +21,7 @@
...
@@ -21,7 +21,7 @@
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
E : coPset
E : coPset
l : loc
l : loc
============================
============================
...
@@ -35,7 +35,7 @@
...
@@ -35,7 +35,7 @@
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
l : loc
l : loc
============================
============================
_ : ▷ l ↦ #0
_ : ▷ l ↦ #0
...
@@ -45,7 +45,7 @@
...
@@ -45,7 +45,7 @@
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
l : loc
l : loc
============================
============================
_ : l ↦ #1
_ : l ↦ #1
...
@@ -55,7 +55,7 @@
...
@@ -55,7 +55,7 @@
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
l : loc
l : loc
============================
============================
"Hl1" : l ↦{1 / 2} #0
"Hl1" : l ↦{1 / 2} #0
...
@@ -66,7 +66,7 @@
...
@@ -66,7 +66,7 @@
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
l : loc
l : loc
============================
============================
--------------------------------------∗
--------------------------------------∗
...
@@ -81,7 +81,7 @@ Tactic failure: wp_pure: cannot find ?y in (Var "x") or
...
@@ -81,7 +81,7 @@ Tactic failure: wp_pure: cannot find ?y in (Var "x") or
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
============================
============================
--------------------------------------∗
--------------------------------------∗
WP "x" {{ _, True }}
WP "x" {{ _, True }}
...
@@ -89,7 +89,7 @@ Tactic failure: wp_pure: cannot find ?y in (Var "x") or
...
@@ -89,7 +89,7 @@ Tactic failure: wp_pure: cannot find ?y in (Var "x") or
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
fun1, fun2, fun3 : expr
fun1, fun2, fun3 : expr
============================
============================
--------------------------------------∗
--------------------------------------∗
...
@@ -101,7 +101,7 @@ Tactic failure: wp_pure: cannot find ?y in (Var "x") or
...
@@ -101,7 +101,7 @@ Tactic failure: wp_pure: cannot find ?y in (Var "x") or
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
fun1, fun2, fun3 : expr
fun1, fun2, fun3 : expr
Φ : language.val heap_lang → iPropI Σ
Φ : language.val heap_lang → iPropI Σ
============================
============================
...
@@ -114,7 +114,7 @@ Tactic failure: wp_pure: cannot find ?y in (Var "x") or
...
@@ -114,7 +114,7 @@ Tactic failure: wp_pure: cannot find ?y in (Var "x") or
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
fun1, fun2, fun3 : expr
fun1, fun2, fun3 : expr
Φ : language.val heap_lang → iPropI Σ
Φ : language.val heap_lang → iPropI Σ
E : coPset
E : coPset
...
@@ -128,7 +128,7 @@ Tactic failure: wp_pure: cannot find ?y in (Var "x") or
...
@@ -128,7 +128,7 @@ Tactic failure: wp_pure: cannot find ?y in (Var "x") or
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
fun1, fun2, fun3 : expr
fun1, fun2, fun3 : expr
============================
============================
{{{ True }}}
{{{ True }}}
...
...
tests/heap_lang.v
View file @
da93f357
...
@@ -6,7 +6,7 @@ Set Ltac Backtrace.
...
@@ -6,7 +6,7 @@ Set Ltac Backtrace.
Set
Default
Proof
Using
"Type"
.
Set
Default
Proof
Using
"Type"
.
Section
tests
.
Section
tests
.
Context
`
{
heapG
Σ
}.
Context
`
{
!
heapG
Σ
}.
Implicit
Types
P
Q
:
iProp
Σ
.
Implicit
Types
P
Q
:
iProp
Σ
.
Implicit
Types
Φ
:
val
→
iProp
Σ
.
Implicit
Types
Φ
:
val
→
iProp
Σ
.
...
@@ -147,7 +147,7 @@ Section tests.
...
@@ -147,7 +147,7 @@ Section tests.
End
tests
.
End
tests
.
Section
printing_tests
.
Section
printing_tests
.
Context
`
{
heapG
Σ
}.
Context
`
{
!
heapG
Σ
}.
(* These terms aren't even closed, but that's not what this is about. The
(* These terms aren't even closed, but that's not what this is about. The
length of the variable names etc. has been carefully chosen to trigger
length of the variable names etc. has been carefully chosen to trigger
...
@@ -192,7 +192,7 @@ Section printing_tests.
...
@@ -192,7 +192,7 @@ Section printing_tests.
End
printing_tests
.
End
printing_tests
.
Section
error_tests
.
Section
error_tests
.
Context
`
{
heapG
Σ
}.
Context
`
{
!
heapG
Σ
}.
Check
"not_cas"
.
Check
"not_cas"
.
Lemma
not_cas
:
Lemma
not_cas
:
...
...
tests/heap_lang2.ref
View file @
da93f357
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: heapG Σ
heapG0
: heapG Σ
fun1, fun2, fun3 : expr
fun1, fun2, fun3 : expr
============================
============================
--------------------------------------∗
--------------------------------------∗
...
...
tests/heap_lang2.v
View file @
da93f357
...
@@ -6,7 +6,7 @@ From iris.heap_lang Require Import proofmode notation.
...
@@ -6,7 +6,7 @@ From iris.heap_lang Require Import proofmode notation.
Set
Default
Proof
Using
"Type"
.
Set
Default
Proof
Using
"Type"
.
Section
printing_tests
.
Section
printing_tests
.
Context
`
{
heapG
Σ
}.
Context
`
{
!
heapG
Σ
}.
Lemma
wp_print_long_expr
(
fun1
fun2
fun3
:
expr
)
:
Lemma
wp_print_long_expr
(
fun1
fun2
fun3
:
expr
)
:
True
-
∗
WP
let
:
"val1"
:
=
fun1
#()
in
True
-
∗
WP
let
:
"val1"
:
=
fun1
#()
in
...
...
tests/ipm_paper.v
View file @
da93f357
...
@@ -107,7 +107,7 @@ under max can be found in [theories/heap_lang/lib/counter.v]. *)
...
@@ -107,7 +107,7 @@ under max can be found in [theories/heap_lang/lib/counter.v]. *)
update modalities (which we did not cover in the paper). Normally we use these
update modalities (which we did not cover in the paper). Normally we use these
mask changing update modalities directly in our proofs, but in this file we use
mask changing update modalities directly in our proofs, but in this file we use
the first prove the rule as a lemma, and then use that. *)
the first prove the rule as a lemma, and then use that. *)
Lemma
wp_inv_open
`
{
irisG
Λ
Σ
}
N
E
P
e
Φ
:
Lemma
wp_inv_open
`
{
!
irisG
Λ
Σ
}
N
E
P
e
Φ
:
nclose
N
⊆
E
→
Atomic
WeaklyAtomic
e
→
nclose
N
⊆
E
→
Atomic
WeaklyAtomic
e
→
inv
N
P
∗
(
▷
P
-
∗
WP
e
@
E
∖
↑
N
{{
v
,
▷
P
∗
Φ
v
}})
⊢
WP
e
@
E
{{
Φ
}}.
inv
N
P
∗
(
▷
P
-
∗
WP
e
@
E
∖
↑
N
{{
v
,
▷
P
∗
Φ
v
}})
⊢
WP
e
@
E
{{
Φ
}}.
Proof
.
Proof
.
...
...
tests/proofmode.ref
View file @
da93f357
...
@@ -131,7 +131,7 @@ Tactic failure: iFrame: cannot frame Q.
...
@@ -131,7 +131,7 @@ Tactic failure: iFrame: cannot frame Q.
1 subgoal
1 subgoal
PROP : sbi
PROP : sbi
H
: BiAffine PROP
BiAffine0
: BiAffine PROP
P, Q : PROP
P, Q : PROP
============================
============================
_ : □ P
_ : □ P
...
...
tests/proofmode.v
View file @
da93f357
...
@@ -69,7 +69,7 @@ Lemma test_iDestruct_intuitionistic_2 P Q `{!Persistent P, !Affine P}:
...
@@ -69,7 +69,7 @@ Lemma test_iDestruct_intuitionistic_2 P Q `{!Persistent P, !Affine P}:
Q
∗
(
Q
-
∗
P
)
-
∗
P
.
Q
∗
(
Q
-
∗
P
)
-
∗
P
.
Proof
.
iIntros
"[HQ HQP]"
.
iDestruct
(
"HQP"
with
"HQ"
)
as
"#HP"
.
done
.
Qed
.
Proof
.
iIntros
"[HQ HQP]"
.
iDestruct
(
"HQP"
with
"HQ"
)
as
"#HP"
.
done
.
Qed
.
Lemma
test_iDestruct_intuitionistic_affine_bi
`
{
BiAffine
PROP
}
P
Q
`
{!
Persistent
P
}
:
Lemma
test_iDestruct_intuitionistic_affine_bi
`
{
!
BiAffine
PROP
}
P
Q
`
{!
Persistent
P
}
:
Q
∗
(
Q
-
∗
P
)
-
∗
P
∗
Q
.
Q
∗
(
Q
-
∗
P
)
-
∗
P
∗
Q
.
Proof
.
iIntros
"[HQ HQP]"
.
iDestruct
(
"HQP"
with
"HQ"
)
as
"#HP"
.
by
iFrame
.
Qed
.
Proof
.
iIntros
"[HQ HQP]"
.
iDestruct
(
"HQP"
with
"HQ"
)
as
"#HP"
.
by
iFrame
.
Qed
.
...
@@ -180,7 +180,7 @@ Lemma test_iFrame_conjunction_2 P Q :
...
@@ -180,7 +180,7 @@ Lemma test_iFrame_conjunction_2 P Q :
P
-
∗
Q
-
∗
(
P
∧
P
)
∗
(
Q
∧
Q
).
P
-
∗
Q
-
∗
(
P
∧
P
)
∗
(
Q
∧
Q
).
Proof
.
iIntros
"HP HQ"
.
iFrame
"HP HQ"
.
Qed
.
Proof
.
iIntros
"HP HQ"
.
iFrame
"HP HQ"
.
Qed
.
Lemma
test_iFrame_later
`
{
BiAffine
PROP
}
P
Q
:
P
-
∗
Q
-
∗
▷
P
∗
Q
.
Lemma
test_iFrame_later
`
{
!
BiAffine
PROP
}
P
Q
:
P
-
∗
Q
-
∗
▷
P
∗
Q
.
Proof
.
iIntros
"H1 H2"
.
by
iFrame
"H1"
.
Qed
.
Proof
.
iIntros
"H1 H2"
.
by
iFrame
"H1"
.
Qed
.
Lemma
test_iAssert_modality
P
:
◇
False
-
∗
▷
P
.
Lemma
test_iAssert_modality
P
:
◇
False
-
∗
▷
P
.
...
@@ -555,7 +555,7 @@ Proof.
...
@@ -555,7 +555,7 @@ Proof.
Qed
.
Qed
.
Check
"test_and_sep_affine_bi"
.
Check
"test_and_sep_affine_bi"
.
Lemma
test_and_sep_affine_bi
`
{
BiAffine
PROP
}
P
Q
:
□
P
∧
Q
⊢
□
P
∗
Q
.
Lemma
test_and_sep_affine_bi
`
{
!
BiAffine
PROP
}
P
Q
:
□
P
∧
Q
⊢
□
P
∗
Q
.
Proof
.
Proof
.
iIntros
"[??]"
.
iSplit
;
last
done
.
Show
.
done
.
iIntros
"[??]"
.
iSplit
;
last
done
.
Show
.
done
.
Qed
.
Qed
.
...
...
tests/proofmode_iris.ref
View file @
da93f357
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: invG Σ
invG0
: invG Σ
H
0 : cinvG Σ
cinvG
0 : cinvG Σ
H1
: na_invG Σ
na_invG0
: na_invG Σ
N : namespace
N : namespace
P : iProp Σ
P : iProp Σ
============================
============================
...
@@ -15,9 +15,9 @@
...
@@ -15,9 +15,9 @@
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: invG Σ
invG0
: invG Σ
H
0 : cinvG Σ
cinvG
0 : cinvG Σ
H1
: na_invG Σ
na_invG0
: na_invG Σ
N : namespace
N : namespace
P : iProp Σ
P : iProp Σ
============================
============================
...
@@ -31,9 +31,9 @@
...
@@ -31,9 +31,9 @@
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: invG Σ
invG0
: invG Σ
H
0 : cinvG Σ
cinvG
0 : cinvG Σ
H1
: na_invG Σ
na_invG0
: na_invG Σ
γ : gname
γ : gname
p : Qp
p : Qp
N : namespace
N : namespace
...
@@ -49,9 +49,9 @@
...
@@ -49,9 +49,9 @@
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: invG Σ
invG0
: invG Σ
H
0 : cinvG Σ
cinvG
0 : cinvG Σ
H1
: na_invG Σ
na_invG0
: na_invG Σ
γ : gname
γ : gname
p : Qp
p : Qp
N : namespace
N : namespace
...
@@ -68,14 +68,14 @@
...
@@ -68,14 +68,14 @@
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: invG Σ
invG0
: invG Σ
H
0 : cinvG Σ
cinvG
0 : cinvG Σ
H1
: na_invG Σ
na_invG0
: na_invG Σ
t : na_inv_pool_name
t : na_inv_pool_name
N : namespace
N : namespace
E1, E2 : coPset
E1, E2 : coPset
P : iProp Σ
P : iProp Σ
H
2
: ↑N ⊆ E2
H : ↑N ⊆ E2
============================
============================
_ : na_inv t N (<pers> P)
_ : na_inv t N (<pers> P)
"HP" : ▷ <pers> P
"HP" : ▷ <pers> P
...
@@ -89,14 +89,14 @@
...
@@ -89,14 +89,14 @@
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: invG Σ
invG0
: invG Σ
H
0 : cinvG Σ
cinvG
0 : cinvG Σ
H1
: na_invG Σ
na_invG0
: na_invG Σ
t : na_inv_pool_name
t : na_inv_pool_name
N : namespace
N : namespace
E1, E2 : coPset
E1, E2 : coPset
P : iProp Σ
P : iProp Σ
H
2
: ↑N ⊆ E2
H : ↑N ⊆ E2
============================
============================
_ : na_inv t N (<pers> P)
_ : na_inv t N (<pers> P)
"HP" : ▷ <pers> P
"HP" : ▷ <pers> P
...
@@ -132,12 +132,12 @@ Tactic failure: iInv: invariant "H2" not found.
...
@@ -132,12 +132,12 @@ Tactic failure: iInv: invariant "H2" not found.
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: invG Σ
invG0
: invG Σ
I : biIndex
I : biIndex
N : namespace
N : namespace
E : coPset
E : coPset
𝓟 : iProp Σ
𝓟 : iProp Σ
H
0
: ↑N ⊆ E
H : ↑N ⊆ E
============================
============================
"HP" : ⎡ ▷ 𝓟 ⎤
"HP" : ⎡ ▷ 𝓟 ⎤
--------------------------------------∗
--------------------------------------∗
...
@@ -148,12 +148,12 @@ Tactic failure: iInv: invariant "H2" not found.
...
@@ -148,12 +148,12 @@ Tactic failure: iInv: invariant "H2" not found.
1 subgoal
1 subgoal
Σ : gFunctors
Σ : gFunctors
H
: invG Σ
invG0
: invG Σ
I : biIndex
I : biIndex
N : namespace
N : namespace
E : coPset
E : coPset
𝓟 : iProp Σ
𝓟 : iProp Σ
H
0
: ↑N ⊆ E
H : ↑N ⊆ E
============================
============================
"HP" : ⎡ ▷ 𝓟 ⎤
"HP" : ⎡ ▷ 𝓟 ⎤
"Hclose" : ⎡ ▷ 𝓟 ={E ∖ ↑N,E}=∗ emp ⎤
"Hclose" : ⎡ ▷ 𝓟 ={E ∖ ↑N,E}=∗ emp ⎤
...
...
tests/proofmode_iris.v
View file @
da93f357
...
@@ -50,7 +50,7 @@ Section base_logic_tests.
...
@@ -50,7 +50,7 @@ Section base_logic_tests.
End
base_logic_tests
.
End
base_logic_tests
.
Section
iris_tests
.
Section
iris_tests
.
Context
`
{
invG
Σ
,
cinvG
Σ
,
na_invG
Σ
}.
Context
`
{
!
invG
Σ
,
!
cinvG
Σ
,
!
na_invG
Σ
}.
Implicit
Types
P
Q
R
:
iProp
Σ
.
Implicit
Types
P
Q
R
:
iProp
Σ
.
Lemma
test_masks
N
E
P
Q
R
:
Lemma
test_masks
N
E
P
Q
R
:
...
@@ -223,7 +223,7 @@ Section iris_tests.
...
@@ -223,7 +223,7 @@ Section iris_tests.
End
iris_tests
.
End
iris_tests
.
Section
monpred_tests
.
Section
monpred_tests
.
Context
`
{
invG
Σ
}.
Context
`
{
!
invG
Σ
}.
Context
{
I
:
biIndex
}.
Context
{
I
:
biIndex
}.
Local
Notation
monPred
:
=
(
monPred
I
(
iPropI
Σ
)).
Local
Notation
monPred
:
=
(
monPred
I
(
iPropI
Σ
)).
Local
Notation
monPredI
:
=
(
monPredI
I
(
iPropI
Σ
)).
Local
Notation
monPredI
:
=
(
monPredI
I
(
iPropI
Σ
)).
...
...
theories/algebra/agree.v
View file @
da93f357
...
@@ -266,7 +266,7 @@ Lemma agree_map_to_agree {A B} (f : A → B) (x : A) :
...
@@ -266,7 +266,7 @@ Lemma agree_map_to_agree {A B} (f : A → B) (x : A) :
Proof
.
by
apply
agree_eq
.
Qed
.
Proof
.
by
apply
agree_eq
.
Qed
.
Section
agree_map
.
Section
agree_map
.
Context
{
A
B
:
ofeT
}
(
f
:
A
→
B
)
`
{
Hf
:
NonExpansive
f
}.
Context
{
A
B
:
ofeT
}
(
f
:
A
→
B
)
{
Hf
:
NonExpansive
f
}.
Instance
agree_map_ne
:
NonExpansive
(
agree_map
f
).
Instance
agree_map_ne
:
NonExpansive
(
agree_map
f
).
Proof
.
Proof
.
...
...
theories/algebra/auth.v
View file @
da93f357
...
@@ -43,7 +43,7 @@ Definition auth_ofe_mixin : OfeMixin (auth A).
...
@@ -43,7 +43,7 @@ Definition auth_ofe_mixin : OfeMixin (auth A).
Proof
.
by
apply
(
iso_ofe_mixin
(
λ
x
,
(
authoritative
x
,
auth_own
x
))).
Qed
.
Proof
.
by
apply
(
iso_ofe_mixin
(
λ
x
,
(
authoritative
x
,
auth_own
x
))).
Qed
.
Canonical
Structure
authC
:
=
OfeT
(
auth
A
)
auth_ofe_mixin
.
Canonical
Structure
authC
:
=
OfeT
(
auth
A
)
auth_ofe_mixin
.
Global
Instance
auth_cofe
`
{
Cofe
A
}
:
Cofe
authC
.
Global
Instance
auth_cofe
`
{
!
Cofe
A
}
:
Cofe
authC
.
Proof
.
Proof
.
apply
(
iso_cofe
(
λ
y
:
_
*
_
,
Auth
(
y
.
1
)
(
y
.
2
))
apply
(
iso_cofe
(
λ
y
:
_
*
_
,
Auth
(
y
.
1
)
(
y
.
2
))
(
λ
x
,
(
authoritative
x
,
auth_own
x
)))
;
by
repeat
intro
.
(
λ
x
,
(
authoritative
x
,
auth_own
x
)))
;
by
repeat
intro
.
...
@@ -113,7 +113,7 @@ Proof.
...
@@ -113,7 +113,7 @@ Proof.
destruct
x
as
[[[]|]]
;
naive_solver
eauto
using
cmra_validN_includedN
.
destruct
x
as
[[[]|]]
;
naive_solver
eauto
using
cmra_validN_includedN
.
Qed
.
Qed
.
Lemma
auth_valid_discrete
`
{
CmraDiscrete
A
}
x
:
Lemma
auth_valid_discrete
`
{
!
CmraDiscrete
A
}
x
:
✓
x
↔
match
authoritative
x
with
✓
x
↔
match
authoritative
x
with
|
Excl'
a
=>
auth_own
x
≼
a
∧
✓
a
|
Excl'
a
=>
auth_own
x
≼
a
∧
✓
a
|
None
=>
✓
auth_own
x
|
None
=>
✓
auth_own
x
...
@@ -125,12 +125,12 @@ Proof.
...
@@ -125,12 +125,12 @@ Proof.
Qed
.
Qed
.
Lemma
auth_validN_2
n
a
b
:
✓
{
n
}
(
●
a
⋅
◯
b
)
↔
b
≼
{
n
}
a
∧
✓
{
n
}
a
.
Lemma
auth_validN_2
n
a
b
:
✓
{
n
}
(
●
a
⋅
◯
b
)
↔
b
≼
{
n
}
a
∧
✓
{
n
}
a
.
Proof
.
by
rewrite
auth_validN_eq
/=
left_id
.
Qed
.
Proof
.
by
rewrite
auth_validN_eq
/=
left_id
.
Qed
.
Lemma
auth_valid_discrete_2
`
{
CmraDiscrete
A
}
a
b
:
✓
(
●
a
⋅
◯
b
)
↔
b
≼
a
∧
✓
a
.
Lemma
auth_valid_discrete_2
`
{
!
CmraDiscrete
A
}
a
b
:
✓
(
●
a
⋅
◯
b
)
↔
b
≼
a
∧
✓
a
.
Proof
.
by
rewrite
auth_valid_discrete
/=
left_id
.
Qed
.
Proof
.
by
rewrite
auth_valid_discrete
/=
left_id
.
Qed
.
Lemma
authoritative_valid
x
:
✓
x
→
✓
authoritative
x
.
Lemma
authoritative_valid
x
:
✓
x
→
✓
authoritative
x
.
Proof
.
by
destruct
x
as
[[[]|]].
Qed
.
Proof
.
by
destruct
x
as
[[[]|]].
Qed
.
Lemma
auth_own_valid
`
{
CmraDiscrete
A
}
x
:
✓
x
→
✓
auth_own
x
.
Lemma
auth_own_valid
`
{
!
CmraDiscrete
A
}
x
:
✓
x
→
✓
auth_own
x
.
Proof
.
Proof
.
rewrite
auth_valid_discrete
.
rewrite
auth_valid_discrete
.
destruct
x
as
[[[]|]]
;
naive_solver
eauto
using
cmra_valid_included
.
destruct
x
as
[[[]|]]
;
naive_solver
eauto
using
cmra_valid_included
.
...
...
theories/algebra/excl.v
View file @
da93f357
...
@@ -52,7 +52,7 @@ Proof.
...
@@ -52,7 +52,7 @@ Proof.
Qed
.
Qed
.
Canonical
Structure
exclC
:
ofeT
:
=
OfeT
(
excl
A
)
excl_ofe_mixin
.
Canonical
Structure
exclC
:
ofeT
:
=
OfeT
(
excl
A
)
excl_ofe_mixin
.
Global
Instance
excl_cofe
`
{
Cofe
A
}
:
Cofe
exclC
.
Global
Instance
excl_cofe
`
{
!
Cofe
A
}
:
Cofe
exclC
.
Proof
.
Proof
.
apply
(
iso_cofe
(
from_option
Excl
ExclBot
)
(
maybe
Excl
)).
apply
(
iso_cofe
(
from_option
Excl
ExclBot
)
(
maybe
Excl
)).
-
by
intros
n
[
a
|]
[
b
|]
;
split
;
inversion_clear
1
;
constructor
.
-
by
intros
n
[
a
|]
[
b
|]
;
split
;
inversion_clear
1
;
constructor
.
...
...
theories/algebra/gmap.v
View file @
da93f357
...
@@ -353,7 +353,7 @@ Qed.
...
@@ -353,7 +353,7 @@ Qed.
Section
freshness
.
Section
freshness
.
Local
Set
Default
Proof
Using
"Type*"
.
Local
Set
Default
Proof
Using
"Type*"
.
Context
`
{
Infinite
K
}.
Context
`
{
!
Infinite
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
.
Proof
.
Proof
.
...
...
theories/algebra/gset.v
View file @
da93f357