Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Janno
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
Hide 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
.
\ No newline at end of file
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
_
.
...
...
@@ -62,4 +62,4 @@ Notation "'rec:' f x y := e" := (RecV f x (Lam y e%L))
Notation
"'rec:' f x y z := e"
:
=
(
Rec
f
x
(
Lam
y
(
Lam
z
e
%
L
)))
(
at
level
102
,
f
,
x
,
y
,
z
at
level
1
,
e
at
level
200
)
:
lang_scope
.
Notation
"'rec:' f x y z := e"
:
=
(
RecV
f
x
(
Lam
y
(
Lam
z
e
%
L
)))
(
at
level
102
,
f
,
x
,
y
,
z
at
level
1
,
e
at
level
200
)
:
lang_scope
.
\ No newline at end of file
(
at
level
102
,
f
,
x
,
y
,
z
at
level
1
,
e
at
level
200
)
:
lang_scope
.
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
).
...
...
@@ -58,4 +58,4 @@ Fixpoint fresh_strings_of_set
|
S
n
=>
let
x
:
=
fresh_string_of_set
s
X
in
x
::
fresh_strings_of_set
s
n
({[
x
]}
∪
X
)