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
Tej Chajed
iris
Commits
94216199
Commit
94216199
authored
Mar 10, 2016
by
Robbert Krebbers
Browse files
Give the project a top-level name so it can be make installed.
Thanks to Amin Timany for the suggestion.
parent
d72200d0
Changes
92
Hide whitespace changes
Inline
Side-by-side
prelude/decidable.v
View file @
94216199
...
...
@@ -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. *)
From
prelude
Require
Export
proof_irrel
.
From
iris
.
prelude
Require
Export
proof_irrel
.
Hint
Extern
200
(
Decision
_
)
=>
progress
(
lazy
beta
)
:
typeclass_instances
.
...
...
prelude/error.v
View file @
94216199
(* Copyright (c) 2012-2015, Robbert Krebbers. *)
(* This file is distributed under the terms of the BSD license. *)
From
prelude
Require
Export
list
.
From
iris
.
prelude
Require
Export
list
.
Definition
error
(
S
E
A
:
Type
)
:
Type
:
=
S
→
E
+
(
A
*
S
).
...
...
prelude/fin_collections.v
View file @
94216199
...
...
@@ -4,8 +4,8 @@
importantly, it implements a fold and size function and some useful induction
principles on finite collections . *)
From
Coq
Require
Import
Permutation
.
From
prelude
Require
Import
relations
listset
.
From
prelude
Require
Export
numbers
collections
.
From
iris
.
prelude
Require
Import
relations
listset
.
From
iris
.
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 @
94216199
...
...
@@ -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. *)
From
prelude
Require
Export
collections
fin_maps
.
From
iris
.
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 @
94216199
...
...
@@ -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_eq] to simplify goals involving finite maps. *)
From
Coq
Require
Import
Permutation
.
From
prelude
Require
Export
relations
vector
orders
.
From
iris
.
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 @
94216199
(* Copyright (c) 2012-2015, Robbert Krebbers. *)
(* This file is distributed under the terms of the BSD license. *)
From
prelude
Require
Export
countable
list
.
From
iris
.
prelude
Require
Export
countable
list
.
Class
Finite
A
`
{
∀
x
y
:
A
,
Decision
(
x
=
y
)}
:
=
{
enum
:
list
A
;
...
...
prelude/functions.v
View file @
94216199
From
prelude
Require
Export
base
tactics
.
From
iris
.
prelude
Require
Export
base
tactics
.
Section
definitions
.
Context
{
A
T
:
Type
}
`
{
∀
a
b
:
A
,
Decision
(
a
=
b
)}.
...
...
prelude/gmap.v
View file @
94216199
...
...
@@ -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. *)
From
prelude
Require
Export
countable
fin_maps
fin_map_dom
.
From
prelude
Require
Import
pmap
mapset
sets
.
From
iris
.
prelude
Require
Export
countable
fin_maps
fin_map_dom
.
From
iris
.
prelude
Require
Import
pmap
mapset
sets
.
(** * The data structure *)
(** We pack a [Pmap] together with a proof that ensures that all keys correspond
...
...
prelude/hashset.v
View file @
94216199
...
...
@@ -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. *)
From
prelude
Require
Export
fin_maps
listset
.
From
prelude
Require
Import
zmap
.
From
iris
.
prelude
Require
Export
fin_maps
listset
.
From
iris
.
prelude
Require
Import
zmap
.
Record
hashset
{
A
}
(
hash
:
A
→
Z
)
:
=
Hashset
{
hashset_car
:
Zmap
(
list
A
)
;
...
...
prelude/lexico.v
View file @
94216199
...
...
@@ -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. *)
From
prelude
Require
Import
numbers
.
From
iris
.
prelude
Require
Import
numbers
.
Notation
cast_trichotomy
T
:
=
match
T
with
...
...
prelude/list.v
View file @
94216199
...
...
@@ -3,7 +3,7 @@
(** This file collects general purpose definitions and theorems on lists that
are not in the Coq standard library. *)
From
Coq
Require
Export
Permutation
.
From
prelude
Require
Export
numbers
base
option
.
From
iris
.
prelude
Require
Export
numbers
base
option
.
Arguments
length
{
_
}
_
.
Arguments
cons
{
_
}
_
_
.
...
...
prelude/listset.v
View file @
94216199
...
...
@@ -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. *)
From
prelude
Require
Export
collections
list
.
From
iris
.
prelude
Require
Export
collections
list
.
Record
listset
A
:
=
Listset
{
listset_car
:
list
A
}.
Arguments
listset_car
{
_
}
_
.
...
...
prelude/listset_nodup.v
View file @
94216199
...
...
@@ -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. *)
From
prelude
Require
Export
collections
list
.
From
iris
.
prelude
Require
Export
collections
list
.
Record
listset_nodup
A
:
=
ListsetNoDup
{
listset_nodup_car
:
list
A
;
listset_nodup_prf
:
NoDup
listset_nodup_car
...
...
prelude/mapset.v
View file @
94216199
...
...
@@ -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. *)
From
prelude
Require
Export
fin_map_dom
.
From
iris
.
prelude
Require
Export
fin_map_dom
.
Record
mapset
(
M
:
Type
→
Type
)
:
Type
:
=
Mapset
{
mapset_car
:
M
(
unit
:
Type
)
}.
...
...
prelude/natmap.v
View file @
94216199
...
...
@@ -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. *)
From
prelude
Require
Import
fin_maps
mapset
.
From
iris
.
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 @
94216199
...
...
@@ -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]. *)
From
prelude
Require
Import
pmap
mapset
.
From
prelude
Require
Export
prelude
fin_maps
.
From
iris
.
prelude
Require
Import
pmap
mapset
.
From
iris
.
prelude
Require
Export
prelude
fin_maps
.
Local
Open
Scope
N_scope
.
...
...
prelude/numbers.v
View file @
94216199
...
...
@@ -5,7 +5,7 @@ natural numbers, and the type [Z] for integers. It also declares some useful
notations. *)
From
Coq
Require
Export
Eqdep
PArith
NArith
ZArith
NPeano
.
From
Coq
Require
Import
QArith
Qcanon
.
From
prelude
Require
Export
base
decidable
option
.
From
iris
.
prelude
Require
Export
base
decidable
option
.
Open
Scope
nat_scope
.
Coercion
Z
.
of_nat
:
nat
>->
Z
.
...
...
prelude/option.v
View file @
94216199
...
...
@@ -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. *)
From
prelude
Require
Export
tactics
.
From
iris
.
prelude
Require
Export
tactics
.
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 @
94216199
...
...
@@ -3,7 +3,7 @@
(** 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. *)
From
Coq
Require
Export
Sorted
.
From
prelude
Require
Export
tactics
list
.
From
iris
.
prelude
Require
Export
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 @
94216199
...
...
@@ -8,8 +8,8 @@ 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. *)
From
Coq
Require
Import
PArith
.
From
prelude
Require
Import
mapset
.
From
prelude
Require
Export
fin_maps
.
From
iris
.
prelude
Require
Import
mapset
.
From
iris
.
prelude
Require
Export
fin_maps
.
Local
Open
Scope
positive_scope
.
Local
Hint
Extern
0
(@
eq
positive
_
_
)
=>
congruence
.
...
...
Prev
1
2
3
4
5
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