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
Iris
Iris
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
)
end
%
nat
.
\ No newl