Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
F
Fairis
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
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Iris
Fairis
Commits
4c056f5e
Commit
4c056f5e
authored
Jun 27, 2016
by
Jacques-Henri Jourdan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Counting CMRA
parent
b3d2ff9b
Changes
3
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
algebra/upred_big_op.v
algebra/upred_hlist.v
algebra/frac.v
algebra/count.v
algebra/csum.v
algebra/list.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.
Qed
.
(
**
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
.
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
...
...
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