Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
iris-coq
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jeehoon Kang
iris-coq
Commits
60d82286
Commit
60d82286
authored
Jan 05, 2017
by
Ralf Jung
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
more restrictive Proof Using hints in heap_lang, proofmode, tests
parent
6db2ae8e
Changes
35
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
43 additions
and
38 deletions
+43
-38
theories/heap_lang/adequacy.v
theories/heap_lang/adequacy.v
+1
-1
theories/heap_lang/lang.v
theories/heap_lang/lang.v
+1
-1
theories/heap_lang/lib/assert.v
theories/heap_lang/lib/assert.v
+1
-1
theories/heap_lang/lib/barrier/barrier.v
theories/heap_lang/lib/barrier/barrier.v
+1
-1
theories/heap_lang/lib/barrier/proof.v
theories/heap_lang/lib/barrier/proof.v
+1
-1
theories/heap_lang/lib/barrier/protocol.v
theories/heap_lang/lib/barrier/protocol.v
+1
-1
theories/heap_lang/lib/barrier/specification.v
theories/heap_lang/lib/barrier/specification.v
+3
-2
theories/heap_lang/lib/counter.v
theories/heap_lang/lib/counter.v
+1
-1
theories/heap_lang/lib/lock.v
theories/heap_lang/lib/lock.v
+1
-1
theories/heap_lang/lib/par.v
theories/heap_lang/lib/par.v
+2
-1
theories/heap_lang/lib/spawn.v
theories/heap_lang/lib/spawn.v
+1
-1
theories/heap_lang/lib/spin_lock.v
theories/heap_lang/lib/spin_lock.v
+1
-1
theories/heap_lang/lib/ticket_lock.v
theories/heap_lang/lib/ticket_lock.v
+1
-1
theories/heap_lang/lifting.v
theories/heap_lang/lifting.v
+1
-1
theories/heap_lang/notation.v
theories/heap_lang/notation.v
+1
-1
theories/heap_lang/proofmode.v
theories/heap_lang/proofmode.v
+1
-1
theories/heap_lang/tactics.v
theories/heap_lang/tactics.v
+1
-1
theories/proofmode/class_instances.v
theories/proofmode/class_instances.v
+1
-1
theories/proofmode/classes.v
theories/proofmode/classes.v
+1
-1
theories/proofmode/coq_tactics.v
theories/proofmode/coq_tactics.v
+1
-1
theories/proofmode/environments.v
theories/proofmode/environments.v
+1
-1
theories/proofmode/intro_patterns.v
theories/proofmode/intro_patterns.v
+1
-1
theories/proofmode/notation.v
theories/proofmode/notation.v
+1
-1
theories/proofmode/sel_patterns.v
theories/proofmode/sel_patterns.v
+1
-1
theories/proofmode/spec_patterns.v
theories/proofmode/spec_patterns.v
+1
-1
theories/proofmode/strings.v
theories/proofmode/strings.v
+1
-1
theories/proofmode/tactics.v
theories/proofmode/tactics.v
+1
-1
theories/tests/barrier_client.v
theories/tests/barrier_client.v
+3
-2
theories/tests/counter.v
theories/tests/counter.v
+1
-1
theories/tests/heap_lang.v
theories/tests/heap_lang.v
+1
-1
theories/tests/joining_existentials.v
theories/tests/joining_existentials.v
+3
-2
theories/tests/list_reverse.v
theories/tests/list_reverse.v
+1
-1
theories/tests/one_shot.v
theories/tests/one_shot.v
+2
-1
theories/tests/proofmode.v
theories/tests/proofmode.v
+1
-1
theories/tests/tree_sum.v
theories/tests/tree_sum.v
+1
-1
No files found.
theories/heap_lang/adequacy.v
View file @
60d82286
...
...
@@ -3,7 +3,7 @@ From iris.heap_lang Require Export lifting.
From
iris
.
algebra
Require
Import
auth
.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
From
iris
.
proofmode
Require
Import
tactics
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Class
heapPreG
Σ
:=
HeapPreG
{
heap_preG_iris
:>
invPreG
Σ
;
...
...
theories/heap_lang/lang.v
View file @
60d82286
...
...
@@ -2,7 +2,7 @@ From iris.program_logic Require Export ectx_language ectxi_language.
From
iris
.
algebra
Require
Export
ofe
.
From
iris
.
prelude
Require
Export
strings
.
From
iris
.
prelude
Require
Import
gmap
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Module
heap_lang
.
Open
Scope
Z_scope
.
...
...
theories/heap_lang/lib/assert.v
View file @
60d82286
...
...
@@ -2,7 +2,7 @@ From iris.program_logic Require Export weakestpre.
From
iris
.
heap_lang
Require
Export
lang
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Definition
assert
:
val
:=
λ
:
"v"
,
if
:
"v"
#()
then
#()
else
#
0
#
0.
(
*
#
0
#
0
is
unsafe
*
)
...
...
theories/heap_lang/lib/barrier/barrier.v
View file @
60d82286
From
iris
.
heap_lang
Require
Export
notation
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Definition
newbarrier
:
val
:=
λ
:
<>
,
ref
#
false
.
Definition
signal
:
val
:=
λ
:
"x"
,
"x"
<-
#
true
.
...
...
theories/heap_lang/lib/barrier/proof.v
View file @
60d82286
...
...
@@ -5,7 +5,7 @@ From iris.prelude Require Import functions.
From
iris
.
base_logic
Require
Import
big_op
lib
.
saved_prop
lib
.
sts
.
From
iris
.
heap_lang
Require
Import
proofmode
.
From
iris
.
heap_lang
.
lib
.
barrier
Require
Import
protocol
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(
**
The
CMRAs
/
functors
we
need
.
*
)
(
*
Not
bundling
heapG
,
as
it
may
be
shared
with
other
users
.
*
)
...
...
theories/heap_lang/lib/barrier/protocol.v
View file @
60d82286
From
iris
.
algebra
Require
Export
sts
.
From
iris
.
base_logic
Require
Import
lib
.
own
.
From
iris
.
prelude
Require
Export
gmap
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
(
**
The
STS
describing
the
main
barrier
protocol
.
Every
state
has
an
index
-
set
associated
with
it
.
These
indices
are
actually
[
gname
],
because
we
use
them
...
...
theories/heap_lang/lib/barrier/specification.v
View file @
60d82286
...
...
@@ -2,11 +2,12 @@ From iris.program_logic Require Export hoare.
From
iris
.
heap_lang
.
lib
.
barrier
Require
Export
barrier
.
From
iris
.
heap_lang
.
lib
.
barrier
Require
Import
proof
.
From
iris
.
heap_lang
Require
Import
proofmode
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Section
spec
.
Context
`
{!
heapG
Σ
}
`
{!
barrierG
Σ
}
.
Set
Default
Proof
Using
"Type*"
.
Context
`
{!
heapG
Σ
,
!
barrierG
Σ
}
.
Lemma
barrier_spec
(
N
:
namespace
)
:
∃
recv
send
:
loc
→
iProp
Σ
-
n
>
iProp
Σ
,
...
...
theories/heap_lang/lib/counter.v
View file @
60d82286
...
...
@@ -4,7 +4,7 @@ From iris.heap_lang Require Export lang.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
algebra
Require
Import
frac
auth
.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Definition
newcounter
:
val
:=
λ
:
<>
,
ref
#
0.
Definition
incr
:
val
:=
rec
:
"incr"
"l"
:=
...
...
theories/heap_lang/lib/lock.v
View file @
60d82286
From
iris
.
heap_lang
Require
Export
lifting
notation
.
From
iris
.
base_logic
.
lib
Require
Export
invariants
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Structure
lock
Σ
`
{!
heapG
Σ
}
:=
Lock
{
(
*
--
operations
--
*
)
...
...
theories/heap_lang/lib/par.v
View file @
60d82286
From
iris
.
heap_lang
Require
Export
spawn
.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Definition
parN
:
namespace
:=
nroot
.
@
"par"
.
...
...
@@ -14,6 +14,7 @@ Definition par : val :=
Notation
"e1 ||| e2"
:=
(
par
(
Pair
(
λ
:
<>
,
e1
)
(
λ
:
<>
,
e2
)))
%
E
:
expr_scope
.
Section
proof
.
Set
Default
Proof
Using
"Type*"
.
Context
`
{!
heapG
Σ
,
!
spawnG
Σ
}
.
(
*
Notice
that
this
allows
us
to
strip
a
later
*
after
*
the
two
Ψ
have
been
...
...
theories/heap_lang/lib/spawn.v
View file @
60d82286
...
...
@@ -4,7 +4,7 @@ From iris.heap_lang Require Export lang.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
From
iris
.
algebra
Require
Import
excl
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Definition
spawn
:
val
:=
λ
:
"f"
,
...
...
theories/heap_lang/lib/spin_lock.v
View file @
60d82286
...
...
@@ -4,7 +4,7 @@ From iris.proofmode Require Import tactics.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
From
iris
.
algebra
Require
Import
excl
.
From
iris
.
heap_lang
.
lib
Require
Import
lock
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Definition
newlock
:
val
:=
λ
:
<>
,
ref
#
false
.
Definition
try_acquire
:
val
:=
λ
:
"l"
,
CAS
"l"
#
false
#
true
.
...
...
theories/heap_lang/lib/ticket_lock.v
View file @
60d82286
...
...
@@ -4,7 +4,7 @@ From iris.proofmode Require Import tactics.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
From
iris
.
algebra
Require
Import
auth
gset
.
From
iris
.
heap_lang
.
lib
Require
Export
lock
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Definition
wait_loop
:
val
:=
...
...
theories/heap_lang/lifting.v
View file @
60d82286
...
...
@@ -5,7 +5,7 @@ From iris.heap_lang Require Export lang.
From
iris
.
heap_lang
Require
Import
tactics
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
prelude
Require
Import
fin_maps
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
(
**
Basic
rules
for
language
operations
.
*
)
...
...
theories/heap_lang/notation.v
View file @
60d82286
From
iris
.
program_logic
Require
Import
language
.
From
iris
.
heap_lang
Require
Export
lang
tactics
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Coercion
LitInt
:
Z
>->
base_lit
.
Coercion
LitBool
:
bool
>->
base_lit
.
...
...
theories/heap_lang/proofmode.v
View file @
60d82286
...
...
@@ -2,7 +2,7 @@ From iris.program_logic Require Export weakestpre.
From
iris
.
proofmode
Require
Import
coq_tactics
.
From
iris
.
proofmode
Require
Export
tactics
.
From
iris
.
heap_lang
Require
Export
tactics
lifting
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
(
**
wp
-
specific
helper
tactics
*
)
...
...
theories/heap_lang/tactics.v
View file @
60d82286
From
iris
.
heap_lang
Require
Export
lang
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
heap_lang
.
(
**
We
define
an
alternative
representation
of
expressions
in
which
the
...
...
theories/proofmode/class_instances.v
View file @
60d82286
...
...
@@ -2,7 +2,7 @@ From iris.proofmode Require Export classes.
From
iris
.
algebra
Require
Import
gmap
.
From
iris
.
prelude
Require
Import
gmultiset
.
From
iris
.
base_logic
Require
Import
big_op
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Section
classes
.
...
...
theories/proofmode/classes.v
View file @
60d82286
From
iris
.
base_logic
Require
Export
base_logic
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Section
classes
.
...
...
theories/proofmode/coq_tactics.v
View file @
60d82286
...
...
@@ -2,7 +2,7 @@ From iris.base_logic Require Export base_logic.
From
iris
.
base_logic
Require
Import
big_op
tactics
.
From
iris
.
proofmode
Require
Export
environments
classes
.
From
iris
.
prelude
Require
Import
stringmap
hlist
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Import
env_notations
.
...
...
theories/proofmode/environments.v
View file @
60d82286
...
...
@@ -2,7 +2,7 @@ From iris.prelude Require Export strings.
From
iris
.
proofmode
Require
Import
strings
.
From
iris
.
algebra
Require
Export
base
.
From
iris
.
prelude
Require
Import
stringmap
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Inductive
env
(
A
:
Type
)
:
Type
:=
|
Enil
:
env
A
...
...
theories/proofmode/intro_patterns.v
View file @
60d82286
From
iris
.
prelude
Require
Export
strings
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Inductive
intro_pat
:=
|
IName
:
string
→
intro_pat
...
...
theories/proofmode/notation.v
View file @
60d82286
From
iris
.
proofmode
Require
Import
coq_tactics
environments
.
From
iris
.
prelude
Require
Export
strings
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Delimit
Scope
proof_scope
with
env
.
Arguments
Envs
_
_
%
proof_scope
_
%
proof_scope
.
...
...
theories/proofmode/sel_patterns.v
View file @
60d82286
From
iris
.
prelude
Require
Export
strings
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Inductive
sel_pat
:=
|
SelPure
...
...
theories/proofmode/spec_patterns.v
View file @
60d82286
From
iris
.
prelude
Require
Export
strings
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Record
spec_goal
:=
SpecGoal
{
spec_goal_modal
:
bool
;
...
...
theories/proofmode/strings.v
View file @
60d82286
From
iris
.
prelude
Require
Import
strings
.
From
iris
.
algebra
Require
Import
base
.
From
Coq
Require
Import
Ascii
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Local
Notation
"b1 && b2"
:=
(
if
b1
then
b2
else
false
)
:
bool_scope
.
...
...
theories/proofmode/tactics.v
View file @
60d82286
...
...
@@ -5,7 +5,7 @@ From iris.proofmode Require Export classes notation.
From
iris
.
proofmode
Require
Import
class_instances
.
From
iris
.
prelude
Require
Import
stringmap
hlist
.
From
iris
.
proofmode
Require
Import
strings
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Declare
Reduction
env_cbv
:=
cbv
[
beq
ascii_beq
string_beq
...
...
theories/tests/barrier_client.v
View file @
60d82286
...
...
@@ -3,7 +3,7 @@ From iris.heap_lang Require Export lang.
From
iris
.
heap_lang
.
lib
.
barrier
Require
Import
proof
.
From
iris
.
heap_lang
Require
Import
par
.
From
iris
.
heap_lang
Require
Import
adequacy
proofmode
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Definition
worker
(
n
:
Z
)
:
val
:=
λ
:
"b"
"y"
,
wait
"b"
;;
!
"y"
#
n
.
...
...
@@ -14,9 +14,10 @@ Definition client : expr :=
(
worker
12
"b"
"y"
|||
worker
17
"b"
"y"
).
Section
client
.
Set
Default
Proof
Using
"Type*"
.
Context
`
{!
heapG
Σ
,
!
barrierG
Σ
,
!
spawnG
Σ
}
.
Local
Definition
N
:=
nroot
.
@
"barrier"
.
Definition
N
:=
nroot
.
@
"barrier"
.
Definition
y_inv
(
q
:
Qp
)
(
l
:
loc
)
:
iProp
Σ
:=
(
∃
f
:
val
,
l
↦
{
q
}
f
∗
□
∀
n
:
Z
,
WP
f
#
n
{{
v
,
⌜
v
=
#(
n
+
42
)
⌝
}}
)
%
I
.
...
...
theories/tests/counter.v
View file @
60d82286
...
...
@@ -8,7 +8,7 @@ From iris.heap_lang Require Export lang.
From
iris
.
program_logic
Require
Export
hoare
.
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Import
uPred
.
Definition
newcounter
:
val
:=
λ
:
<>
,
ref
#
0.
...
...
theories/tests/heap_lang.v
View file @
60d82286
...
...
@@ -3,7 +3,7 @@ From iris.program_logic Require Export weakestpre hoare.
From
iris
.
heap_lang
Require
Export
lang
.
From
iris
.
heap_lang
Require
Import
adequacy
.
From
iris
.
heap_lang
Require
Import
proofmode
notation
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Section
LiftingTests
.
Context
`
{
heapG
Σ
}
.
...
...
theories/tests/joining_existentials.v
View file @
60d82286
...
...
@@ -4,7 +4,7 @@ From iris.algebra Require Import excl agree csum.
From
iris
.
heap_lang
.
lib
.
barrier
Require
Import
proof
specification
.
From
iris
.
heap_lang
Require
Import
notation
par
proofmode
.
From
iris
.
proofmode
Require
Import
tactics
.
Set
Default
Proof
Using
"
All
"
.
Set
Default
Proof
Using
"
Type
"
.
Definition
one_shotR
(
Σ
:
gFunctors
)
(
F
:
cFunctor
)
:=
csumR
(
exclR
unitC
)
(
agreeR
$
laterC
$
F
(
iPreProp
Σ
)).
...
...
@@ -24,6 +24,7 @@ Definition client eM eW1 eW2 : expr :=
(
eM
;;
signal
"b"
)
|||
((
wait
"b"
;;
eW1
)
|||
(
wait
"b"
;;
eW2
)).
Section
proof
.
Set
Default
Proof
Using
"Type*"
.
Context
`
{!
heapG
Σ
,
!
barrierG
Σ
,
!
spawnG
Σ
,
!
oneShotG
Σ
F
}
.
Context
(
N
:
namespace
).
Local
Notation
X
:=
(
F
(
iProp
Σ
)).
...
...
@@ -71,7 +72,7 @@ Lemma client_spec_new eM eW1 eW2 `{!Closed [] eM, !Closed [] eW1, !Closed [] eW2
(
∀
x
,
{{
Φ
1
x
}}
eW1
{{
_
,
Ψ
1
x
}}
)
-
∗
(
∀
x
,
{{
Φ
2
x
}}
eW2
{{
_
,
Ψ
2
x
}}
)
-
∗
WP
client
eM
eW1
eW2
{{
_
,
∃
γ
,
barrier_res
γ
Ψ
}}
.
Proof
.
Proof
using
All
.
iIntros
"/= HP #He #He1 #He2"
;
rewrite
/
client
.
iMod
(
own_alloc
(
Pending
:
one_shotR
Σ
F
))
as
(
γ
)
"Hγ"
;
first
done
.
wp_apply
(
newbarrier_spec
N
(
barrier_res
γ
Φ
));
auto
.
...
...
theories/tests/list_reverse.v
View file @
60d82286
...
...
@@ -3,7 +3,7 @@ From iris.program_logic Require Export weakestpre hoare.
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
*
"
.
Set
Default
Proof
Using
"Type"
.
Section
list_reverse
.
Context
`
{!
heapG
Σ
}
.
...
...
theories/tests/one_shot.v
View file @
60d82286
...
...
@@ -3,7 +3,7 @@ From iris.heap_lang Require Export lang.
From
iris
.
algebra
Require
Import
excl
agree
csum
.
From
iris
.
heap_lang
Require
Import
assert
proofmode
notation
.
From
iris
.
proofmode
Require
Import
tactics
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Definition
one_shot_example
:
val
:=
λ
:
<>
,
let:
"x"
:=
ref
NONE
in
(
...
...
@@ -30,6 +30,7 @@ Instance subG_one_shotΣ {Σ} : subG one_shotΣ Σ → one_shotG Σ.
Proof
.
intros
[
?%
subG_inG
_
]
%
subG_inv
.
split
;
apply
_.
Qed
.
Section
proof
.
Set
Default
Proof
Using
"Type*"
.
Context
`
{!
heapG
Σ
,
!
one_shotG
Σ
}
.
Definition
one_shot_inv
(
γ
:
gname
)
(
l
:
loc
)
:
iProp
Σ
:=
...
...
theories/tests/proofmode.v
View file @
60d82286
From
iris
.
proofmode
Require
Import
tactics
.
From
iris
.
base_logic
.
lib
Require
Import
invariants
.
Set
Default
Proof
Using
"Type
*
"
.
Set
Default
Proof
Using
"Type"
.
Lemma
demo_0
{
M
:
ucmraT
}
(
P
Q
:
uPred
M
)
:
□
(
P
∨
Q
)
-
∗
(
∀
x
,
⌜
x
=
0
⌝
∨
⌜
x
=
1
⌝
)
→
(
Q
∨
P
).
...
...
theories/tests/tree_sum.v
View file @
60d82286
...
...
@@ -2,7 +2,7 @@ From iris.program_logic Require Export 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
*
"
.
Set
Default
Proof
Using
"Type"
.
Inductive
tree
:=
|
leaf
:
Z
→
tree
...
...
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