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
Joshua Yanovski
iris-coq
Commits
bd7ebdec
Commit
bd7ebdec
authored
Feb 13, 2016
by
Robbert Krebbers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use new Import/Export syntax everywhere.
Also, make our redefinition of done more robust under different orders of Importing modules.
parent
3a18b722
Changes
74
Show whitespace changes
Inline
Side-by-side
Showing
74 changed files
with
152 additions
and
139 deletions
+152
-139
algebra/agree.v
algebra/agree.v
+2
-2
algebra/auth.v
algebra/auth.v
+2
-2
algebra/base.v
algebra/base.v
+4
-3
algebra/cmra.v
algebra/cmra.v
+1
-1
algebra/cmra_big_op.v
algebra/cmra_big_op.v
+2
-2
algebra/cmra_tactics.v
algebra/cmra_tactics.v
+2
-2
algebra/cofe.v
algebra/cofe.v
+1
-1
algebra/cofe_solver.v
algebra/cofe_solver.v
+1
-1
algebra/dra.v
algebra/dra.v
+1
-1
algebra/excl.v
algebra/excl.v
+2
-2
algebra/fin_maps.v
algebra/fin_maps.v
+3
-2
algebra/functor.v
algebra/functor.v
+1
-1
algebra/iprod.v
algebra/iprod.v
+2
-2
algebra/option.v
algebra/option.v
+2
-2
algebra/sts.v
algebra/sts.v
+3
-2
algebra/upred.v
algebra/upred.v
+1
-1
heap_lang/derived.v
heap_lang/derived.v
+1
-1
heap_lang/heap_lang.v
heap_lang/heap_lang.v
+3
-2
heap_lang/lifting.v
heap_lang/lifting.v
+5
-4
heap_lang/notation.v
heap_lang/notation.v
+2
-2
heap_lang/substitution.v
heap_lang/substitution.v
+1
-1
heap_lang/tactics.v
heap_lang/tactics.v
+2
-2
heap_lang/tests.v
heap_lang/tests.v
+1
-1
prelude/base.v
prelude/base.v
+1
-1
prelude/bsets.v
prelude/bsets.v
+1
-1
prelude/co_pset.v
prelude/co_pset.v
+2
-2
prelude/collections.v
prelude/collections.v
+1
-1
prelude/countable.v
prelude/countable.v
+1
-1
prelude/decidable.v
prelude/decidable.v
+1
-1
prelude/error.v
prelude/error.v
+1
-1
prelude/fin_collections.v
prelude/fin_collections.v
+3
-2
prelude/fin_map_dom.v
prelude/fin_map_dom.v
+1
-1
prelude/fin_maps.v
prelude/fin_maps.v
+2
-2
prelude/finite.v
prelude/finite.v
+1
-1
prelude/gmap.v
prelude/gmap.v
+2
-2
prelude/hashset.v
prelude/hashset.v
+2
-2
prelude/lexico.v
prelude/lexico.v
+1
-1
prelude/list.v
prelude/list.v
+2
-2
prelude/listset.v
prelude/listset.v
+1
-1
prelude/listset_nodup.v
prelude/listset_nodup.v
+1
-1
prelude/mapset.v
prelude/mapset.v
+1
-1
prelude/natmap.v
prelude/natmap.v
+1
-1
prelude/nmap.v
prelude/nmap.v
+2
-2
prelude/numbers.v
prelude/numbers.v
+4
-4
prelude/option.v
prelude/option.v
+1
-1
prelude/orders.v
prelude/orders.v
+2
-2
prelude/pmap.v
prelude/pmap.v
+3
-2
prelude/prelude.v
prelude/prelude.v
+14
-14
prelude/pretty.v
prelude/pretty.v
+3
-3
prelude/proof_irrel.v
prelude/proof_irrel.v
+2
-1
prelude/relations.v
prelude/relations.v
+2
-2
prelude/sets.v
prelude/sets.v
+1
-1
prelude/streams.v
prelude/streams.v
+1
-1
prelude/stringmap.v
prelude/stringmap.v
+3
-3
prelude/strings.v
prelude/strings.v
+3
-2
prelude/tactics.v
prelude/tactics.v
+3
-3
prelude/vector.v
prelude/vector.v
+1
-1
prelude/zmap.v
prelude/zmap.v
+2
-2
program_logic/adequacy.v
program_logic/adequacy.v
+2
-2
program_logic/auth.v
program_logic/auth.v
+2
-2
program_logic/ghost_ownership.v
program_logic/ghost_ownership.v
+3
-2
program_logic/hoare.v
program_logic/hoare.v
+1
-1
program_logic/hoare_lifting.v
program_logic/hoare_lifting.v
+2
-2
program_logic/invariants.v
program_logic/invariants.v
+4
-3
program_logic/language.v
program_logic/language.v
+1
-1
program_logic/lifting.v
program_logic/lifting.v
+2
-2
program_logic/model.v
program_logic/model.v
+3
-2
program_logic/ownership.v
program_logic/ownership.v
+1
-1
program_logic/pviewshifts.v
program_logic/pviewshifts.v
+3
-3
program_logic/resources.v
program_logic/resources.v
+2
-2
program_logic/tests.v
program_logic/tests.v
+1
-1
program_logic/viewshifts.v
program_logic/viewshifts.v
+2
-2
program_logic/weakestpre.v
program_logic/weakestpre.v
+2
-2
program_logic/wsat.v
program_logic/wsat.v
+3
-2
No files found.
algebra/agree.v
View file @
bd7ebdec
Require
Export
algebra
.
cmra
.
Require
Import
algebra
.
functor
.
From
algebra
Require
Export
cmra
.
From
algebra
Require
Import
functor
.
Local
Hint
Extern
10
(
_
≤
_
)
=>
omega
.
Record
agree
(
A
:
Type
)
:
Type
:=
Agree
{
...
...
algebra/auth.v
View file @
bd7ebdec
Require
Export
algebra
.
excl
.
Require
Import
algebra
.
functor
.
From
algebra
Require
Export
excl
.
From
algebra
Require
Import
functor
.
Local
Arguments
validN
_
_
_
!
_
/
.
Record
auth
(
A
:
Type
)
:
Type
:=
Auth
{
authoritative
:
excl
A
;
own
:
A
}
.
...
...
algebra/base.v
View file @
bd7ebdec
Require
Export
mathcomp
.
ssreflect
.
ssreflect
.
Require
Export
prelude
.
prelude
.
From
mathcomp
.
ssreflect
Require
Export
ssreflect
.
From
prelude
Require
Export
prelude
.
Global
Set
Bullet
Behavior
"Strict Subproofs"
.
Global
Open
Scope
general_if_scope
.
Ltac
done
:=
prelude
.
tactics
.
done
.
\ No newline at end of file
algebra/cmra.v
View file @
bd7ebdec
Require
Export
algebra
.
cofe
.
From
algebra
Require
Export
cofe
.
Class
Unit
(
A
:
Type
)
:=
unit
:
A
→
A
.
Instance:
Params
(
@
unit
)
2.
...
...
algebra/cmra_big_op.v
View file @
bd7ebdec
Require
Export
algebra
.
cmra
.
Require
Import
prelude
.
fin_maps
.
From
algebra
Require
Export
cmra
.
From
prelude
Require
Import
fin_maps
.
Fixpoint
big_op
{
A
:
cmraT
}
`
{
Empty
A
}
(
xs
:
list
A
)
:
A
:=
match
xs
with
[]
=>
∅
|
x
::
xs
=>
x
⋅
big_op
xs
end
.
...
...
algebra/cmra_tactics.v
View file @
bd7ebdec
Require
Export
algebra
.
cmra
.
Require
Import
algebra
.
cmra_big_op
.
From
algebra
Require
Export
cmra
.
From
algebra
Require
Import
cmra_big_op
.
(
**
*
Simple
solver
for
validity
and
inclusion
by
reflection
*
)
Module
ra_reflection
.
Section
ra_reflection
.
...
...
algebra/cofe.v
View file @
bd7ebdec
Require
Export
algebra
.
base
.
From
algebra
Require
Export
base
.
(
**
Unbundeled
version
*
)
Class
Dist
A
:=
dist
:
nat
→
relation
A
.
...
...
algebra/cofe_solver.v
View file @
bd7ebdec
Require
Export
algebra
.
cofe
.
From
algebra
Require
Export
cofe
.
Record
solution
(
F
:
cofeT
→
cofeT
→
cofeT
)
:=
Solution
{
solution_car
:>
cofeT
;
...
...
algebra/dra.v
View file @
bd7ebdec
Require
Export
algebra
.
cmra
.
From
algebra
Require
Export
cmra
.
(
**
From
disjoint
pcm
*
)
Record
validity
{
A
}
(
P
:
A
→
Prop
)
:
Type
:=
Validity
{
...
...
algebra/excl.v
View file @
bd7ebdec
Require
Export
algebra
.
cmra
.
Require
Import
algebra
.
functor
.
From
algebra
Require
Export
cmra
.
From
algebra
Require
Import
functor
.
Local
Arguments
validN
_
_
_
!
_
/
.
Local
Arguments
valid
_
_
!
_
/
.
...
...
algebra/fin_maps.v
View file @
bd7ebdec
Require
Export
algebra
.
cmra
prelude
.
gmap
algebra
.
option
.
Require
Import
algebra
.
functor
.
From
algebra
Require
Export
cmra
option
.
From
prelude
Require
Export
gmap
.
From
algebra
Require
Import
functor
.
Section
cofe
.
Context
`
{
Countable
K
}
{
A
:
cofeT
}
.
...
...
algebra/functor.v
View file @
bd7ebdec
Require
Export
algebra
.
cmra
.
From
algebra
Require
Export
cmra
.
(
**
*
Functors
from
COFE
to
CMRA
*
)
(
*
TODO
RJ
:
Maybe
find
a
better
name
for
this
?
It
is
not
PL
-
specific
any
more
.
*
)
...
...
algebra/iprod.v
View file @
bd7ebdec
Require
Export
algebra
.
cmra
.
Require
Import
algebra
.
functor
.
From
algebra
Require
Export
cmra
.
From
algebra
Require
Import
functor
.
(
**
*
Indexed
product
*
)
(
**
Need
to
put
this
in
a
definition
to
make
canonical
structures
to
work
.
*
)
...
...
algebra/option.v
View file @
bd7ebdec
Require
Export
algebra
.
cmra
.
Require
Import
algebra
.
functor
.
From
algebra
Require
Export
cmra
.
From
algebra
Require
Import
functor
.
(
*
COFE
*
)
Section
cofe
.
...
...
algebra/sts.v
View file @
bd7ebdec
Require
Export
algebra
.
cmra
.
Require
Import
prelude
.
sets
algebra
.
dra
.
From
algebra
Require
Export
cmra
.
From
prelude
Require
Import
sets
.
From
algebra
Require
Import
dra
.
Local
Arguments
valid
_
_
!
_
/
.
Local
Arguments
op
_
_
!
_
!
_
/
.
Local
Arguments
unit
_
_
!
_
/
.
...
...
algebra/upred.v
View file @
bd7ebdec
Require
Export
algebra
.
cmra
.
From
algebra
Require
Export
cmra
.
Local
Hint
Extern
1
(
_
≼
_
)
=>
etransitivity
;
[
eassumption
|
].
Local
Hint
Extern
1
(
_
≼
_
)
=>
etransitivity
;
[
|
eassumption
].
Local
Hint
Extern
10
(
_
≤
_
)
=>
omega
.
...
...
heap_lang/derived.v
View file @
bd7ebdec
Require
Export
heap_lang
.
lifting
.
From
heap_lang
Require
Export
lifting
.
Import
uPred
.
(
**
Define
some
derived
forms
,
and
derived
lemmas
about
them
.
*
)
...
...
heap_lang/heap_lang.v
View file @
bd7ebdec
Require
Export
program_logic
.
language
prelude
.
strings
.
Require
Import
prelude
.
gmap
.
From
program_logic
Require
Export
language
.
From
prelude
Require
Export
strings
.
From
prelude
Require
Import
gmap
.
Module
heap_lang
.
Open
Scope
Z_scope
.
...
...
heap_lang/lifting.v
View file @
bd7ebdec
Require
Export
program_logic
.
weakestpre
heap_lang
.
heap_lang
.
Require
Import
program_logic
.
lifting
.
Require
Import
program_logic
.
ownership
.
(
*
for
ownP
*
)
Require
Import
heap_lang
.
tactics
.
From
program_logic
Require
Export
weakestpre
.
From
heap_lang
Require
Export
heap_lang
.
From
program_logic
Require
Import
lifting
.
From
program_logic
Require
Import
ownership
.
(
*
for
ownP
*
)
From
heap_lang
Require
Import
tactics
.
Export
heap_lang
.
(
*
Prefer
heap_lang
names
over
language
names
.
*
)
Import
uPred
.
Local
Hint
Extern
0
(
language
.
reducible
_
_
)
=>
do_step
ltac
:
(
eauto
2
).
...
...
heap_lang/notation.v
View file @
bd7ebdec
Require
Export
heap_lang
.
derived
.
From
heap_lang
Require
Export
derived
.
(
*
What
about
Arguments
for
hoare
triples
?
.
*
)
Arguments
wp
{
_
_
}
_
_
%
L
_.
...
...
heap_lang/substitution.v
View file @
bd7ebdec
Require
Export
heap_lang
.
derived
.
From
heap_lang
Require
Export
derived
.
(
**
We
define
an
alternative
notion
of
substitution
[
gsubst
e
x
ev
]
that
preserves
the
expression
[
e
]
syntactically
in
case
the
variable
[
x
]
does
not
...
...
heap_lang/tactics.v
View file @
bd7ebdec
Require
Export
heap_lang
.
heap_lang
.
Require
Import
prelude
.
fin_maps
.
From
heap_lang
Require
Export
heap_lang
.
From
prelude
Require
Import
fin_maps
.
Import
heap_lang
.
(
**
The
tactic
[
inv_step
]
performs
inversion
on
hypotheses
of
the
shape
...
...
heap_lang/tests.v
View file @
bd7ebdec
(
**
This
file
is
essentially
a
bunch
of
testcases
.
*
)
Require
Import
program_logic
.
ownership
.
From
program_logic
Require
Import
ownership
.
From
heap_lang
Require
Import
substitution
tactics
notation
.
Import
uPred
.
...
...
prelude/base.v
View file @
bd7ebdec
...
...
@@ -7,7 +7,7 @@ structures. *)
Global
Generalizable
All
Variables
.
Global
Set
Automatic
Coercions
Import
.
Global
Set
Asymmetric
Patterns
.
Require
Export
Morphisms
RelationClasses
List
Bool
Utf8
Program
Setoid
.
From
Coq
Require
Export
Morphisms
RelationClasses
List
Bool
Utf8
Program
Setoid
.
Obligation
Tactic
:=
idtac
.
(
**
*
General
*
)
...
...
prelude/bsets.v
View file @
bd7ebdec
(
*
Copyright
(
c
)
2012
-
2015
,
Robbert
Krebbers
.
*
)
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
(
**
This
file
implements
bsets
as
functions
into
Prop
.
*
)
Require
Export
prelude
.
prelude
.
From
prelude
Require
Export
prelude
.
Record
bset
(
A
:
Type
)
:
Type
:=
mkBSet
{
bset_car
:
A
→
bool
}
.
Arguments
mkBSet
{
_
}
_.
...
...
prelude/co_pset.v
View file @
bd7ebdec
...
...
@@ -2,8 +2,8 @@
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
(
**
This
files
implements
an
efficient
implementation
of
finite
/
cofinite
sets
of
positive
binary
naturals
[
positive
].
*
)
Require
Export
prelude
.
collections
.
Require
Import
p
relude
.
pmap
prelude
.
gmap
prelude
.
mapset
.
From
prelude
Require
Export
collections
.
From
prelude
Require
Import
p
map
gmap
mapset
.
Local
Open
Scope
positive_scope
.
(
**
*
The
tree
data
structure
*
)
...
...
prelude/collections.v
View file @
bd7ebdec
...
...
@@ -3,7 +3,7 @@
(
**
This
file
collects
definitions
and
theorems
on
collections
.
Most
importantly
,
it
implements
some
tactics
to
automatically
solve
goals
involving
collections
.
*
)
Require
Export
prelude
.
base
prelude
.
tactics
prelude
.
orders
.
From
prelude
Require
Export
base
tactics
orders
.
Instance
collection_subseteq
`
{
ElemOf
A
C
}
:
SubsetEq
C
:=
λ
X
Y
,
∀
x
,
x
∈
X
→
x
∈
Y
.
...
...
prelude/countable.v
View file @
bd7ebdec
(
*
Copyright
(
c
)
2012
-
2015
,
Robbert
Krebbers
.
*
)
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
Require
Export
prelude
.
list
.
From
prelude
Require
Export
list
.
Local
Open
Scope
positive
.
Class
Countable
A
`
{
∀
x
y
:
A
,
Decision
(
x
=
y
)
}
:=
{
...
...
prelude/decidable.v
View file @
bd7ebdec
...
...
@@ -3,7 +3,7 @@
(
**
This
file
collects
theorems
,
definitions
,
tactics
,
related
to
propositions
with
a
decidable
equality
.
Such
propositions
are
collected
by
the
[
Decision
]
type
class
.
*
)
Require
Export
prelude
.
proof_irrel
.
From
prelude
Require
Export
proof_irrel
.
Hint
Extern
200
(
Decision
_
)
=>
progress
(
lazy
beta
)
:
typeclass_instances
.
...
...
prelude/error.v
View file @
bd7ebdec
(
*
Copyright
(
c
)
2012
-
2015
,
Robbert
Krebbers
.
*
)
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
Require
Export
prelude
.
list
.
From
prelude
Require
Export
list
.
Definition
error
(
S
E
A
:
Type
)
:
Type
:=
S
→
E
+
(
A
*
S
).
...
...
prelude/fin_collections.v
View file @
bd7ebdec
...
...
@@ -3,8 +3,9 @@
(
**
This
file
collects
definitions
and
theorems
on
finite
collections
.
Most
importantly
,
it
implements
a
fold
and
size
function
and
some
useful
induction
principles
on
finite
collections
.
*
)
Require
Import
Permutation
prelude
.
relations
prelude
.
listset
.
Require
Export
prelude
.
numbers
prelude
.
collections
.
From
Coq
Require
Import
Permutation
.
From
prelude
Require
Import
relations
listset
.
From
prelude
Require
Export
numbers
collections
.
Instance
collection_size
`
{
Elements
A
C
}
:
Size
C
:=
length
∘
elements
.
Definition
collection_fold
`
{
Elements
A
C
}
{
B
}
...
...
prelude/fin_map_dom.v
View file @
bd7ebdec
...
...
@@ -3,7 +3,7 @@
(
**
This
file
provides
an
axiomatization
of
the
domain
function
of
finite
maps
.
We
provide
such
an
axiomatization
,
instead
of
implementing
the
domain
function
in
a
generic
way
,
to
allow
more
efficient
implementations
.
*
)
Require
Export
prelude
.
collections
prelude
.
fin_maps
.
From
prelude
Require
Export
collections
fin_maps
.
Class
FinMapDom
K
M
D
`
{
FMap
M
,
∀
A
,
Lookup
K
A
(
M
A
),
∀
A
,
Empty
(
M
A
),
∀
A
,
PartialAlter
K
A
(
M
A
),
...
...
prelude/fin_maps.v
View file @
bd7ebdec
...
...
@@ -4,8 +4,8 @@
finite
maps
and
collects
some
theory
on
it
.
Most
importantly
,
it
proves
useful
induction
principles
for
finite
maps
and
implements
the
tactic
[
simplify_map_equality
]
to
simplify
goals
involving
finite
maps
.
*
)
Require
Import
Permutation
.
Require
Export
prelude
.
relations
prelude
.
vector
prelude
.
orders
.
From
Coq
Require
Import
Permutation
.
From
prelude
Require
Export
relations
vector
orders
.
(
**
*
Axiomatization
of
finite
maps
*
)
(
**
We
require
Leibniz
equality
to
be
extensional
on
finite
maps
.
This
of
...
...
prelude/finite.v
View file @
bd7ebdec
(
*
Copyright
(
c
)
2012
-
2015
,
Robbert
Krebbers
.
*
)
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
Require
Export
prelude
.
countable
prelude
.
list
.
From
prelude
Require
Export
countable
list
.
Class
Finite
A
`
{
∀
x
y
:
A
,
Decision
(
x
=
y
)
}
:=
{
enum
:
list
A
;
...
...
prelude/gmap.v
View file @
bd7ebdec
...
...
@@ -2,8 +2,8 @@
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
(
**
This
file
implements
finite
maps
and
finite
sets
with
keys
of
any
countable
type
.
The
implementation
is
based
on
[
Pmap
]
s
,
radix
-
2
search
trees
.
*
)
Require
Export
prelude
.
countable
prelude
.
fin_maps
prelude
.
fin_map_dom
.
Require
Import
p
relude
.
pmap
prelude
.
mapset
.
From
prelude
Require
Export
countable
fin_maps
fin_map_dom
.
From
prelude
Require
Import
p
map
mapset
.
(
**
*
The
data
structure
*
)
(
**
We
pack
a
[
Pmap
]
together
with
a
proof
that
ensures
that
all
keys
correspond
...
...
prelude/hashset.v
View file @
bd7ebdec
...
...
@@ -3,8 +3,8 @@
(
**
This
file
implements
finite
set
using
hash
maps
.
Hash
sets
are
represented
using
radix
-
2
search
trees
.
Each
hash
bucket
is
thus
indexed
using
an
binary
integer
of
type
[
Z
],
and
contains
an
unordered
list
without
duplicates
.
*
)
Require
Export
prelude
.
fin_maps
prelude
.
listset
.
Require
Import
prelude
.
zmap
.
From
prelude
Require
Export
fin_maps
listset
.
From
prelude
Require
Import
zmap
.
Record
hashset
{
A
}
(
hash
:
A
→
Z
)
:=
Hashset
{
hashset_car
:
Zmap
(
list
A
);
...
...
prelude/lexico.v
View file @
bd7ebdec
...
...
@@ -2,7 +2,7 @@
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
(
**
This
files
defines
a
lexicographic
order
on
various
common
data
structures
and
proves
that
it
is
a
partial
order
having
a
strong
variant
of
trichotomy
.
*
)
Require
Import
prelude
.
numbers
.
From
prelude
Require
Import
numbers
.
Notation
cast_trichotomy
T
:=
match
T
with
...
...
prelude/list.v
View file @
bd7ebdec
...
...
@@ -2,8 +2,8 @@
(* This file is distributed under the terms of the BSD license. *)
(** This file collects general purpose definitions and theorems on lists that
are not in the Coq standard library. *)
Require Export Permutation.
Require Export
prelude.numbers prelude.base prelude.
decidable
prelude.
option.
From Coq
Require Export Permutation.
From prelude
Require Export
numbers base
decidable option.
Arguments length {_} _.
Arguments cons {_} _ _.
...
...
prelude/listset.v
View file @
bd7ebdec
...
...
@@ -2,7 +2,7 @@
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
(
**
This
file
implements
finite
set
as
unordered
lists
without
duplicates
removed
.
This
implementation
forms
a
monad
.
*
)
Require
Export
prelude
.
base
prelude
.
decidable
prelude
.
collections
prelude
.
list
.
From
prelude
Require
Export
base
decidable
collections
list
.
Record
listset
A
:=
Listset
{
listset_car
:
list
A
}
.
Arguments
listset_car
{
_
}
_.
...
...
prelude/listset_nodup.v
View file @
bd7ebdec
...
...
@@ -3,7 +3,7 @@
(
**
This
file
implements
finite
as
unordered
lists
without
duplicates
.
Although
this
implementation
is
slow
,
it
is
very
useful
as
decidable
equality
is
the
only
constraint
on
the
carrier
set
.
*
)
Require
Export
prelude
.
base
prelude
.
decidable
prelude
.
collections
prelude
.
list
.
From
prelude
Require
Export
base
decidable
collections
list
.
Record
listset_nodup
A
:=
ListsetNoDup
{
listset_nodup_car
:
list
A
;
listset_nodup_prf
:
NoDup
listset_nodup_car
...
...
prelude/mapset.v
View file @
bd7ebdec
...
...
@@ -3,7 +3,7 @@
(
**
This
files
gives
an
implementation
of
finite
sets
using
finite
maps
with
elements
of
the
unit
type
.
Since
maps
enjoy
extensional
equality
,
the
constructed
finite
sets
do
so
as
well
.
*
)
Require
Export
prelude
.
fin_map_dom
.
From
prelude
Require
Export
fin_map_dom
.
Record
mapset
(
M
:
Type
→
Type
)
:
Type
:=
Mapset
{
mapset_car
:
M
(
unit
:
Type
)
}
.
...
...
prelude/natmap.v
View file @
bd7ebdec
...
...
@@ -3,7 +3,7 @@
(
**
This
files
implements
a
type
[
natmap
A
]
of
finite
maps
whose
keys
range
over
Coq
'
s
data
type
of
unary
natural
numbers
[
nat
].
The
implementation
equips
a
list
with
a
proof
of
canonicity
.
*
)
Require
Import
prelude
.
fin_maps
prelude
.
mapset
.
From
prelude
Require
Import
fin_maps
mapset
.
Notation
natmap_raw
A
:=
(
list
(
option
A
)).
Definition
natmap_wf
{
A
}
(
l
:
natmap_raw
A
)
:=
...
...
prelude/nmap.v
View file @
bd7ebdec
...
...
@@ -2,8 +2,8 @@
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
(
**
This
files
extends
the
implementation
of
finite
over
[
positive
]
to
finite
maps
whose
keys
range
over
Coq
'
s
data
type
of
binary
naturals
[
N
].
*
)
Require
Import
p
relude
.
pmap
prelude
.
mapset
.
Require
Export
prelude
.
prelude
prelude
.
fin_maps
.
From
prelude
Require
Import
p
map
mapset
.
From
prelude
Require
Export
prelude
fin_maps
.
Local
Open
Scope
N_scope
.
...
...
prelude/numbers.v
View file @
bd7ebdec
...
...
@@ -3,9 +3,9 @@
(
**
This
file
collects
some
trivial
facts
on
the
Coq
types
[
nat
]
and
[
N
]
for
natural
numbers
,
and
the
type
[
Z
]
for
integers
.
It
also
declares
some
useful
notations
.
*
)
Require
Export
Eqdep
PArith
NArith
ZArith
NPeano
.
Require
Import
QArith
Qcanon
.
Require
Export
prelude
.
base
prelude
.
decidable
prelude
.
option
.
From
Coq
Require
Export
Eqdep
PArith
NArith
ZArith
NPeano
.
From
Coq
Require
Import
QArith
Qcanon
.
From
prelude
Require
Export
base
decidable
option
.
Open
Scope
nat_scope
.
Coercion
Z
.
of_nat
:
nat
>->
Z
.
...
...
@@ -50,7 +50,7 @@ Proof.
*
clear
nat_le_pi
.
intros
;
exfalso
;
auto
with
lia
.
*
injection
1.
intros
Hy
.
by
case
(
nat_le_pi
x
y
p
y
'
q
Hy
).
}
intros
x
y
p
q
.
by
apply
(
eq_dep_eq_dec
(
λ
x
y
,
decide
(
x
=
y
))),
aux
.
by
apply
(
Eqdep_dec
.
eq_dep_eq_dec
(
λ
x
y
,
decide
(
x
=
y
))),
aux
.
Qed
.
Instance
nat_lt_pi
:
∀
x
y
:
nat
,
ProofIrrel
(
x
<
y
).
Proof
.
apply
_.
Qed
.
...
...
prelude/option.v
View file @
bd7ebdec
...
...
@@ -2,7 +2,7 @@
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
(
**
This
file
collects
general
purpose
definitions
and
theorems
on
the
option
data
type
that
are
not
in
the
Coq
standard
library
.
*
)
Require
Export
prelude
.
base
prelude
.
tactics
prelude
.
decidable
.
From
prelude
Require
Export
base
tactics
decidable
.
Inductive
option_reflect
{
A
}
(
P
:
A
→
Prop
)
(
Q
:
Prop
)
:
option
A
→
Type
:=
|
ReflectSome
x
:
P
x
→
option_reflect
P
Q
(
Some
x
)
...
...
prelude/orders.v
View file @
bd7ebdec
...
...
@@ -2,8 +2,8 @@
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
(
**
This
file
collects
common
properties
of
pre
-
orders
and
semi
lattices
.
This
theory
will
mainly
be
used
for
the
theory
on
collections
and
finite
maps
.
*
)
Require
Export
Sorted
.
Require
Export
prelude
.
base
prelude
.
decidable
prelude
.
tactics
prelude
.
list
.
From
Coq
Require
Export
Sorted
.
From
prelude
Require
Export
base
decidable
tactics
list
.
(
**
*
Arbitrary
pre
-
,
parial
and
total
orders
*
)
(
**
Properties
about
arbitrary
pre
-
,
partial
,
and
total
orders
.
We
do
not
use
...
...
prelude/pmap.v
View file @
bd7ebdec
...
...
@@ -7,8 +7,9 @@ trees (uncompressed Patricia trees) and guarantees logarithmic-time operations.
However
,
we
extend
Leroy
'
s
implementation
by
packing
the
trees
into
a
Sigma
type
such
that
canonicity
of
representation
is
ensured
.
This
is
necesarry
for
Leibniz
equality
to
become
extensional
.
*
)
Require
Import
PArith
prelude
.
mapset
.
Require
Export
prelude
.
fin_maps
.
From
Coq
Require
Import
PArith
.
From
prelude
Require
Import
mapset
.
From
prelude
Require
Export
fin_maps
.
Local
Open
Scope
positive_scope
.
Local
Hint
Extern
0
(
@
eq
positive
_
_
)
=>
congruence
.
...
...
prelude/prelude.v
View file @
bd7ebdec
(
*
Copyright
(
c
)
2012
-
2015
,
Robbert
Krebbers
.
*
)
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
Require
Export
prelude
.
base
prelude
.
tactics
prelude
.
decidable
prelude
.
orders
prelude
.
option
prelude
.
vector
prelude
.
numbers
prelude
.
relations
prelude
.
collections
prelude
.
fin_collections
prelude
.
listset
prelude
.
list
prelude
.
lexico
.
From
prelude
Require
Export
base
tactics
decidable
orders
option
vector
numbers
relations
collections
fin_collections
listset
list
lexico
.
prelude/pretty.v
View file @
bd7ebdec
(
*
Copyright
(
c
)
2012
-
2015
,
Robbert
Krebbers
.
*
)
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
Require
Export
prelude
.
strings
.
Require
Import
prelude
.
relations
.
Require
Import
Ascii
.
From
prelude
Require
Export
strings
.
From
prelude
Require
Import
relations
.
From
Coq
Require
Import
Ascii
.
Class
Pretty
A
:=
pretty
:
A
→
string
.
Definition
pretty_N_char
(
x
:
N
)
:
ascii
:=
...
...
prelude/proof_irrel.v
View file @
bd7ebdec
(
*
Copyright
(
c
)
2012
-
2015
,
Robbert
Krebbers
.
*
)
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
(
**
This
file
collects
facts
on
proof
irrelevant
types
/
propositions
.
*
)
Require
Export
Eqdep_dec
prelude
.
tactics
.
From
Coq
Require
Import
Eqdep_dec
.
From
prelude
Require
Export
tactics
.
Hint
Extern
200
(
ProofIrrel
_
)
=>
progress
(
lazy
beta
)
:
typeclass_instances
.
...
...
prelude/relations.v
View file @
bd7ebdec
...
...
@@ -4,8 +4,8 @@
These
are
particularly
useful
as
we
define
the
operational
semantics
as
a
small
step
semantics
.
This
file
defines
a
hint
database
[
ars
]
containing
some
theorems
on
abstract
rewriting
systems
.
*
)
Require
Import
Wf_nat
.
Require
Export
prelude
.
tactics
prelude
.
base
.
From
Coq
Require
Import
Wf_nat
.
From
prelude
Require
Export
tactics
base
.
(
**
*
Definitions
*
)
Section
definitions
.
...
...
prelude/sets.v
View file @
bd7ebdec
(
*
Copyright
(
c
)
2012
-
2015
,
Robbert
Krebbers
.
*
)
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
(
**
This
file
implements
sets
as
functions
into
Prop
.
*
)
Require
Export
prelude
.
prelude
.
From
prelude
Require
Export
prelude
.
Record
set
(
A
:
Type
)
:
Type
:=
mkSet
{
set_car
:
A
→
Prop
}
.
Arguments
mkSet
{
_
}
_.
...
...
prelude/streams.v
View file @
bd7ebdec
(
*
Copyright
(
c
)
2012
-
2015
,
Robbert
Krebbers
.
*
)
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
Require
Export
prelude
.
tactics
.
From
prelude
Require
Export
tactics
.
CoInductive
stream
(
A
:
Type
)
:
Type
:=
scons
:
A
→
stream
A
→
stream
A
.
Arguments
scons
{
_
}
_
_.
...
...
prelude/stringmap.v
View file @
bd7ebdec
...
...
@@ -4,8 +4,8 @@
range
over
Coq
'
s
data
type
of
strings
[
string
].
The
implementation
uses
radix
-
2
search
trees
(
uncompressed
Patricia
trees
)
as
implemented
in
the
file
[
pmap
]
and
guarantees
logarithmic
-
time
operations
.
*
)
Require
Export
prelude
.
fin_maps
prelude
.
pretty
.
Require
Import
prelude
.
gmap
.
From
prelude
Require
Export
fin_maps
pretty
.
From
prelude
Require
Import
gmap
.
Notation
stringmap
:=
(
gmap
string
).
Notation
stringset
:=
(
gset
string
).
...
...
prelude/strings.v
View file @
bd7ebdec
(
*
Copyright
(
c
)
2012
-
2015
,
Robbert
Krebbers
.
*
)
(
*
This
file
is
distributed
under
the
terms
of
the
BSD
license
.
*
)
Require
Import
Ascii
.
Require
Export
String
prelude
.
countable
.
From
Coq
Require
Import
Ascii
.
From
Coq
Require
Export
String
.
From
prelude
Require
Export
countable
.