Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Iris
Iris
Commits
4c056f5e
Commit
4c056f5e
authored
Jun 27, 2016
by
Jacques-Henri Jourdan
Browse files
Counting CMRA
parent
b3d2ff9b
Pipeline
#1680
passed with stage
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
1 deletion
+23
-1
_CoqProject
_CoqProject
+1
-0
algebra/count.v
algebra/count.v
+21
-0
heap_lang/lang.v
heap_lang/lang.v
+1
-1
No files found.
_CoqProject
View file @
4c056f5e
...
@@ -55,6 +55,7 @@ algebra/upred_tactics.v
...
@@ -55,6 +55,7 @@ algebra/upred_tactics.v
algebra/upred_big_op.v
algebra/upred_big_op.v
algebra/upred_hlist.v
algebra/upred_hlist.v
algebra/frac.v
algebra/frac.v
algebra/count.v
algebra/csum.v
algebra/csum.v
algebra/list.v
algebra/list.v
algebra/updates.v
algebra/updates.v
...
...
algebra/count.v
0 → 100644
View file @
4c056f5e
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
upred
.
Notation
count
:
=
nat
(
only
parsing
).
Section
count
.
Canonical
Structure
countC
:
=
leibnizC
count
.
Instance
count_valid
:
Valid
count
:
=
λ
_
,
True
.
Instance
count_pcore
:
PCore
count
:
=
λ
_
,
None
.
Instance
count_op
:
Op
count
:
=
λ
x
y
,
(
x
+
y
)%
nat
.
Definition
count_ra_mixin
:
RAMixin
nat
.
Proof
.
by
split
;
try
apply
_
.
Qed
.
Canonical
Structure
countR
:
=
discreteR
count
count_ra_mixin
.
End
count
.
(** Internalized properties *)
Lemma
count_equivI
{
M
}
(
x
y
:
count
)
:
x
≡
y
⊣
⊢
(
x
=
y
:
uPred
M
).
Proof
.
by
uPred
.
unseal
.
Qed
.
Lemma
count_validI
{
M
}
(
x
:
count
)
:
✓
x
⊣
⊢
(
True
:
uPred
M
).
Proof
.
by
uPred
.
unseal
.
Qed
.
heap_lang/lang.v
View file @
4c056f5e
...
@@ -34,7 +34,7 @@ Proof.
...
@@ -34,7 +34,7 @@ Proof.
Qed
.
Qed
.
(** A typeclass for whether a variable is bound in a given
(** A typeclass for whether a variable is bound in a given
context. Making this a typeclass means we can use tpeclass search
context. Making this a typeclass means we can use t
y
peclass search
to program solving these constraints, so this becomes extensible.
to program solving these constraints, so this becomes extensible.
Also, since typeclass search runs *after* unification, Coq has already
Also, since typeclass search runs *after* unification, Coq has already
inferred the X for us; if we were to go for embedded proof terms ot
inferred the X for us; if we were to go for embedded proof terms ot
...
...
Robbert Krebbers
@robbertkrebbers
mentioned in commit
cdb38447
·
Jun 27, 2016
mentioned in commit
cdb38447
mentioned in commit cdb384478118abc8f43f34180f25cac4ecd6c05e
Toggle commit list
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