Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Simon Spies
stdpp
Commits
dcff8ded
Commit
dcff8ded
authored
Nov 16, 2015
by
Robbert Krebbers
Browse files
Use qualified module names and coqc -Q instead of -R.
parent
11790649
Changes
32
Hide whitespace changes
Inline
Side-by-side
theories/assoc.v
View file @
dcff8ded
...
...
@@ -6,8 +6,8 @@ main advantage of these association lists compared to search trees, is that it
has canonical representatives and thus extensional Leibniz equality. Compared
to a naive unordered association list, the merge operation (used for unions,
intersections, and difference) is also linear-time. *)
Require
Import
mapset
.
Require
Export
fin_maps
.
Require
Import
prelude
.
mapset
.
Require
Export
prelude
.
fin_maps
.
(** Because the association list is sorted using [strict lexico] instead of
[lexico], it automatically guarantees that no duplicates exist. *)
...
...
theories/collections.v
View file @
dcff8ded
...
...
@@ -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
base
tactics
orders
.
Require
Export
prelude
.
base
prelude
.
tactics
prelude
.
orders
.
Instance
collection_subseteq
`
{
ElemOf
A
C
}
:
SubsetEq
C
:
=
λ
X
Y
,
∀
x
,
x
∈
X
→
x
∈
Y
.
...
...
theories/countable.v
View file @
dcff8ded
(* Copyright (c) 2012-2015, Robbert Krebbers. *)
(* This file is distributed under the terms of the BSD license. *)
Require
Export
list
.
Require
Export
prelude
.
list
.
Local
Obligation
Tactic
:
=
idtac
.
Local
Open
Scope
positive
.
...
...
theories/decidable.v
View file @
dcff8ded
...
...
@@ -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
proof_irrel
.
Require
Export
prelude
.
proof_irrel
.
Hint
Extern
200
(
Decision
_
)
=>
progress
(
lazy
beta
)
:
typeclass_instances
.
...
...
theories/error.v
View file @
dcff8ded
(* Copyright (c) 2012-2015, Robbert Krebbers. *)
(* This file is distributed under the terms of the BSD license. *)
Require
Export
list
.
Require
Export
prelude
.
list
.
Definition
error
(
S
E
A
:
Type
)
:
Type
:
=
S
→
E
+
(
A
*
S
).
...
...
theories/fin_collections.v
View file @
dcff8ded
...
...
@@ -3,8 +3,8 @@
(** 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
relations
listset
.
Require
Export
numbers
collections
.
Require
Import
Permutation
prelude
.
relations
prelude
.
listset
.
Require
Export
prelude
.
numbers
prelude
.
collections
.
Instance
collection_size
`
{
Elements
A
C
}
:
Size
C
:
=
length
∘
elements
.
Definition
collection_fold
`
{
Elements
A
C
}
{
B
}
...
...
theories/fin_map_dom.v
View file @
dcff8ded
...
...
@@ -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
collections
fin_maps
.
Require
Export
prelude
.
collections
prelude
.
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
),
...
...
theories/fin_maps.v
View file @
dcff8ded
...
...
@@ -5,7 +5,7 @@ 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
relations
vector
orders
.
Require
Export
prelude
.
relations
prelude
.
vector
prelude
.
orders
.
(** * Axiomatization of finite maps *)
(** We require Leibniz equality to be extensional on finite maps. This of
...
...
theories/finite.v
View file @
dcff8ded
(* Copyright (c) 2012-2015, Robbert Krebbers. *)
(* This file is distributed under the terms of the BSD license. *)
Require
Export
countable
list
.
Require
Export
prelude
.
countable
prelude
.
list
.
Obligation
Tactic
:
=
idtac
.
Class
Finite
A
`
{
∀
x
y
:
A
,
Decision
(
x
=
y
)}
:
=
{
...
...
theories/hashset.v
View file @
dcff8ded
...
...
@@ -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
fin_maps
listset
.
Require
Import
zmap
.
Require
Export
prelude
.
fin_maps
prelude
.
listset
.
Require
Import
prelude
.
zmap
.
Record
hashset
{
A
}
(
hash
:
A
→
Z
)
:
=
Hashset
{
hashset_car
:
Zmap
(
list
A
)
;
...
...
theories/lexico.v
View file @
dcff8ded
...
...
@@ -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
numbers
.
Require
Import
prelude
.
numbers
.
Notation
cast_trichotomy
T
:
=
match
T
with
...
...
theories/list.v
View file @
dcff8ded
...
...
@@ -3,7 +3,7 @@
(** This file collects general purpose definitions and theorems on lists that
are not in the Coq standard library. *)
Require
Export
Permutation
.
Require
Export
numbers
base
decidable
option
.
Require
Export
prelude
.
numbers
prelude
.
base
prelude
.
decidable
prelude
.
option
.
Arguments
length
{
_
}
_
.
Arguments
cons
{
_
}
_
_
.
...
...
theories/listset.v
View file @
dcff8ded
...
...
@@ -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
base
decidable
collections
list
.
Require
Export
prelude
.
base
prelude
.
decidable
prelude
.
collections
prelude
.
list
.
Record
listset
A
:
=
Listset
{
listset_car
:
list
A
}.
Arguments
listset_car
{
_
}
_
.
...
...
theories/listset_nodup.v
View file @
dcff8ded
...
...
@@ -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
base
decidable
collections
list
.
Require
Export
prelude
.
base
prelude
.
decidable
prelude
.
collections
prelude
.
list
.
Record
listset_nodup
A
:
=
ListsetNoDup
{
listset_nodup_car
:
list
A
;
listset_nodup_prf
:
NoDup
listset_nodup_car
...
...
theories/mapset.v
View file @
dcff8ded
...
...
@@ -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
fin_map_dom
.
Require
Export
prelude
.
fin_map_dom
.
Record
mapset
(
M
:
Type
→
Type
)
:
Type
:
=
Mapset
{
mapset_car
:
M
(
unit
:
Type
)
}.
...
...
theories/natmap.v
View file @
dcff8ded
...
...
@@ -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
fin_maps
mapset
.
Require
Import
prelude
.
fin_maps
prelude
.
mapset
.
Notation
natmap_raw
A
:
=
(
list
(
option
A
)).
Definition
natmap_wf
{
A
}
(
l
:
natmap_raw
A
)
:
=
...
...
theories/nmap.v
View file @
dcff8ded
...
...
@@ -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
map
mapset
.
Require
Export
prelude
fin_maps
.
Require
Import
p
relude
.
pmap
prelude
.
mapset
.
Require
Export
prelude
.
prelude
prelude
.
fin_maps
.
Local
Open
Scope
N_scope
.
...
...
theories/numbers.v
View file @
dcff8ded
...
...
@@ -5,7 +5,7 @@ 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
base
decidable
.
Require
Export
prelude
.
base
prelude
.
decidable
.
Open
Scope
nat_scope
.
Coercion
Z
.
of_nat
:
nat
>->
Z
.
...
...
theories/option.v
View file @
dcff8ded
...
...
@@ -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
base
tactics
decidable
.
Require
Export
prelude
.
base
prelude
.
tactics
prelude
.
decidable
.
Inductive
option_reflect
{
A
}
(
P
:
A
→
Prop
)
(
Q
:
Prop
)
:
option
A
→
Type
:
=
|
ReflectSome
x
:
P
x
→
option_reflect
P
Q
(
Some
x
)
...
...
theories/optionmap.v
View file @
dcff8ded
(* Copyright (c) 2012-2015, Robbert Krebbers. *)
(* This file is distributed under the terms of the BSD license. *)
Require
Import
mapset
.
Require
Export
prelude
fin_maps
.
Require
Import
prelude
.
mapset
.
Require
Export
prelude
.
prelude
prelude
.
fin_maps
.
Record
optionmap
(
M
:
Type
→
Type
)
(
A
:
Type
)
:
Type
:
=
OptionMap
{
optionmap_None
:
option
A
;
optionmap_Some
:
M
A
}.
...
...
Prev
1
2
Next
Write
Preview
Supports
Markdown
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