Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
Iris
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Pierre-Marie Pédrot
Iris
Commits
94216199
Commit
94216199
authored
Mar 10, 2016
by
Robbert Krebbers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
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
Showing
92 changed files
with
168 additions
and
168 deletions
+168
-168
_CoqProject
_CoqProject
+1
-1
algebra/agree.v
algebra/agree.v
+2
-2
algebra/auth.v
algebra/auth.v
+2
-2
algebra/base.v
algebra/base.v
+1
-1
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/dec_agree.v
algebra/dec_agree.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
-3
algebra/frac.v
algebra/frac.v
+2
-2
algebra/iprod.v
algebra/iprod.v
+2
-2
algebra/option.v
algebra/option.v
+2
-2
algebra/sts.v
algebra/sts.v
+3
-3
algebra/upred.v
algebra/upred.v
+1
-1
algebra/upred_big_op.v
algebra/upred_big_op.v
+2
-2
algebra/upred_tactics.v
algebra/upred_tactics.v
+2
-2
barrier/barrier.v
barrier/barrier.v
+1
-1
barrier/client.v
barrier/client.v
+3
-3
barrier/proof.v
barrier/proof.v
+6
-6
barrier/protocol.v
barrier/protocol.v
+2
-2
barrier/specification.v
barrier/specification.v
+3
-3
heap_lang/derived.v
heap_lang/derived.v
+1
-1
heap_lang/heap.v
heap_lang/heap.v
+4
-4
heap_lang/lang.v
heap_lang/lang.v
+3
-3
heap_lang/lifting.v
heap_lang/lifting.v
+5
-5
heap_lang/notation.v
heap_lang/notation.v
+1
-1
heap_lang/par.v
heap_lang/par.v
+2
-2
heap_lang/spawn.v
heap_lang/spawn.v
+3
-3
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
+2
-2
heap_lang/wp_tactics.v
heap_lang/wp_tactics.v
+2
-2
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
+2
-2
prelude/fin_map_dom.v
prelude/fin_map_dom.v
+1
-1
prelude/fin_maps.v
prelude/fin_maps.v
+1
-1
prelude/finite.v
prelude/finite.v
+1
-1
prelude/functions.v
prelude/functions.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
+1
-1
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
+1
-1
prelude/option.v
prelude/option.v
+1
-1
prelude/orders.v
prelude/orders.v
+1
-1
prelude/pmap.v
prelude/pmap.v
+2
-2
prelude/prelude.v
prelude/prelude.v
+1
-1
prelude/pretty.v
prelude/pretty.v
+2
-2
prelude/proof_irrel.v
prelude/proof_irrel.v
+1
-1
prelude/relations.v
prelude/relations.v
+1
-1
prelude/sets.v
prelude/sets.v
+1
-1
prelude/streams.v
prelude/streams.v
+1
-1
prelude/stringmap.v
prelude/stringmap.v
+2
-2
prelude/strings.v
prelude/strings.v
+1
-1
prelude/tactics.v
prelude/tactics.v
+1
-1
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
+4
-4
program_logic/global_functor.v
program_logic/global_functor.v
+2
-2
program_logic/hoare.v
program_logic/hoare.v
+1
-1
program_logic/hoare_lifting.v
program_logic/hoare_lifting.v
+3
-3
program_logic/invariants.v
program_logic/invariants.v
+6
-6
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
-3
program_logic/namespaces.v
program_logic/namespaces.v
+2
-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
+3
-3
program_logic/saved_prop.v
program_logic/saved_prop.v
+2
-2
program_logic/sts.v
program_logic/sts.v
+2
-2
program_logic/tactics.v
program_logic/tactics.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
-3
No files found.
_CoqProject
View file @
94216199
-Q .
""
-Q .
iris
prelude/option.v
prelude/fin_map_dom.v
prelude/bsets.v
...
...
algebra/agree.v
View file @
94216199
From
algebra
Require
Export
cmra
.
From
algebra
Require
Import
upred
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
upred
.
Local
Hint
Extern
10
(
_
≤
_
)
=>
omega
.
Record
agree
(
A
:
Type
)
:
Type
:
=
Agree
{
...
...
algebra/auth.v
View file @
94216199
From
algebra
Require
Export
excl
.
From
algebra
Require
Import
upred
.
From
iris
.
algebra
Require
Export
excl
.
From
iris
.
algebra
Require
Import
upred
.
Local
Arguments
valid
_
_
!
_
/.
Local
Arguments
validN
_
_
_
!
_
/.
...
...
algebra/base.v
View file @
94216199
From
mathcomp
Require
Export
ssreflect
.
From
prelude
Require
Export
prelude
.
From
iris
.
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 @
94216199
From
algebra
Require
Export
cofe
.
From
iris
.
algebra
Require
Export
cofe
.
Class
Core
(
A
:
Type
)
:
=
core
:
A
→
A
.
Instance
:
Params
(@
core
)
2
.
...
...
algebra/cmra_big_op.v
View file @
94216199
From
algebra
Require
Export
cmra
.
From
prelude
Require
Import
gmap
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
prelude
Require
Import
gmap
.
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 @
94216199
From
algebra
Require
Export
cmra
.
From
algebra
Require
Import
cmra_big_op
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
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 @
94216199
From
algebra
Require
Export
base
.
From
iris
.
algebra
Require
Export
base
.
(** This files defines (a shallow embedding of) the category of COFEs:
Complete ordered families of equivalences. This is a cartesian closed
...
...
algebra/cofe_solver.v
View file @
94216199
From
algebra
Require
Export
cofe
.
From
iris
.
algebra
Require
Export
cofe
.
Record
solution
(
F
:
cFunctor
)
:
=
Solution
{
solution_car
:
>
cofeT
;
...
...
algebra/dec_agree.v
View file @
94216199
From
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
Local
Arguments
validN
_
_
_
!
_
/.
Local
Arguments
valid
_
_
!
_
/.
Local
Arguments
op
_
_
_
!
_
/.
...
...
algebra/dra.v
View file @
94216199
From
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
(** From disjoint pcm *)
Record
validity
{
A
}
(
P
:
A
→
Prop
)
:
Type
:
=
Validity
{
...
...
algebra/excl.v
View file @
94216199
From
algebra
Require
Export
cmra
.
From
algebra
Require
Import
upred
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
upred
.
Local
Arguments
validN
_
_
_
!
_
/.
Local
Arguments
valid
_
_
!
_
/.
...
...
algebra/fin_maps.v
View file @
94216199
From
algebra
Require
Export
cmra
option
.
From
prelude
Require
Export
gmap
.
From
algebra
Require
Import
upred
.
From
iris
.
algebra
Require
Export
cmra
option
.
From
iris
.
prelude
Require
Export
gmap
.
From
iris
.
algebra
Require
Import
upred
.
Section
cofe
.
Context
`
{
Countable
K
}
{
A
:
cofeT
}.
...
...
algebra/frac.v
View file @
94216199
From
Coq
.
QArith
Require
Import
Qcanon
.
From
algebra
Require
Export
cmra
.
From
algebra
Require
Import
upred
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
upred
.
Local
Arguments
validN
_
_
_
!
_
/.
Local
Arguments
valid
_
_
!
_
/.
Local
Arguments
div
_
_
!
_
!
_
/.
...
...
algebra/iprod.v
View file @
94216199
From
algebra
Require
Export
cmra
.
From
algebra
Require
Import
upred
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
upred
.
(** * Indexed product *)
(** Need to put this in a definition to make canonical structures to work. *)
...
...
algebra/option.v
View file @
94216199
From
algebra
Require
Export
cmra
.
From
algebra
Require
Import
upred
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
upred
.
(* COFE *)
Section
cofe
.
...
...
algebra/sts.v
View file @
94216199
From
prelude
Require
Export
sets
.
From
algebra
Require
Export
cmra
.
From
algebra
Require
Import
dra
.
From
iris
.
prelude
Require
Export
sets
.
From
iris
.
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Import
dra
.
Local
Arguments
valid
_
_
!
_
/.
Local
Arguments
op
_
_
!
_
!
_
/.
Local
Arguments
core
_
_
!
_
/.
...
...
algebra/upred.v
View file @
94216199
From
algebra
Require
Export
cmra
.
From
iris
.
algebra
Require
Export
cmra
.
Local
Hint
Extern
1
(
_
≼
_
)
=>
etrans
;
[
eassumption
|].
Local
Hint
Extern
1
(
_
≼
_
)
=>
etrans
;
[|
eassumption
].
Local
Hint
Extern
10
(
_
≤
_
)
=>
omega
.
...
...
algebra/upred_big_op.v
View file @
94216199
From
algebra
Require
Export
upred
.
From
prelude
Require
Import
gmap
fin_collections
.
From
iris
.
algebra
Require
Export
upred
.
From
iris
.
prelude
Require
Import
gmap
fin_collections
.
Import
uPred
.
(** * Big ops over lists *)
...
...
algebra/upred_tactics.v
View file @
94216199
From
algebra
Require
Export
upred
.
From
algebra
Require
Export
upred_big_op
.
From
iris
.
algebra
Require
Export
upred
.
From
iris
.
algebra
Require
Export
upred_big_op
.
Import
uPred
.
Module
uPred_reflection
.
Section
uPred_reflection
.
...
...
barrier/barrier.v
View file @
94216199
From
heap_lang
Require
Export
notation
.
From
iris
.
heap_lang
Require
Export
notation
.
Definition
newbarrier
:
val
:
=
λ
:
<>,
ref
#
0
.
Definition
signal
:
val
:
=
λ
:
"x"
,
'
"x"
<-
#
1
.
...
...
barrier/client.v
View file @
94216199
From
barrier
Require
Import
proof
.
From
heap_lang
Require
Import
par
.
From
program_logic
Require
Import
auth
sts
saved_prop
hoare
ownership
.
From
iris
.
barrier
Require
Import
proof
.
From
iris
.
heap_lang
Require
Import
par
.
From
iris
.
program_logic
Require
Import
auth
sts
saved_prop
hoare
ownership
.
Import
uPred
.
Definition
worker
(
n
:
Z
)
:
val
:
=
...
...
barrier/proof.v
View file @
94216199
From
prelude
Require
Import
functions
.
From
algebra
Require
Import
upred_big_op
.
From
program_logic
Require
Import
sts
saved_prop
tactics
.
From
heap_lang
Require
Export
heap
wp_tactics
.
From
barrier
Require
Export
barrier
.
From
barrier
Require
Import
protocol
.
From
iris
.
prelude
Require
Import
functions
.
From
iris
.
algebra
Require
Import
upred_big_op
.
From
iris
.
program_logic
Require
Import
sts
saved_prop
tactics
.
From
iris
.
heap_lang
Require
Export
heap
wp_tactics
.
From
iris
.
barrier
Require
Export
barrier
.
From
iris
.
barrier
Require
Import
protocol
.
Import
uPred
.
(** The CMRAs we need. *)
...
...
barrier/protocol.v
View file @
94216199
From
algebra
Require
Export
sts
.
From
program_logic
Require
Import
ghost_ownership
.
From
iris
.
algebra
Require
Export
sts
.
From
iris
.
program_logic
Require
Import
ghost_ownership
.
(** The STS describing the main barrier protocol. Every state has an index-set
associated with it. These indices are actually [gname], because we use them
...
...
barrier/specification.v
View file @
94216199
From
program_logic
Require
Export
hoare
.
From
barrier
Require
Export
barrier
.
From
barrier
Require
Import
proof
.
From
iris
.
program_logic
Require
Export
hoare
.
From
iris
.
barrier
Require
Export
barrier
.
From
iris
.
barrier
Require
Import
proof
.
Import
uPred
.
Section
spec
.
...
...
heap_lang/derived.v
View file @
94216199
From
heap_lang
Require
Export
lifting
.
From
iris
.
heap_lang
Require
Export
lifting
.
Import
uPred
.
(** Define some derived forms, and derived lemmas about them. *)
...
...
heap_lang/heap.v
View file @
94216199
From
heap_lang
Require
Export
lifting
.
From
algebra
Require
Import
upred_big_op
frac
dec_agree
.
From
program_logic
Require
Export
invariants
ghost_ownership
.
From
program_logic
Require
Import
ownership
auth
.
From
iris
.
heap_lang
Require
Export
lifting
.
From
iris
.
algebra
Require
Import
upred_big_op
frac
dec_agree
.
From
iris
.
program_logic
Require
Export
invariants
ghost_ownership
.
From
iris
.
program_logic
Require
Import
ownership
auth
.
Import
uPred
.
(* TODO: The entire construction could be generalized to arbitrary languages that have
a finmap as their state. Or maybe even beyond "as their state", i.e. arbitrary
...
...
heap_lang/lang.v
View file @
94216199
From
program_logic
Require
Export
language
.
From
prelude
Require
Export
strings
.
From
prelude
Require
Import
gmap
.
From
iris
.
program_logic
Require
Export
language
.
From
iris
.
prelude
Require
Export
strings
.
From
iris
.
prelude
Require
Import
gmap
.
Module
heap_lang
.
Open
Scope
Z_scope
.
...
...
heap_lang/lifting.v
View file @
94216199
From
program_logic
Require
Export
weakestpre
.
From
heap_lang
Require
Export
lang
.
From
program_logic
Require
Import
lifting
.
From
program_logic
Require
Import
ownership
.
(* for ownP *)
From
heap_lang
Require
Import
tactics
.
From
iris
.
program_logic
Require
Export
weakestpre
.
From
iris
.
heap_lang
Require
Export
lang
.
From
iris
.
program_logic
Require
Import
lifting
.
From
iris
.
program_logic
Require
Import
ownership
.
(* for ownP *)
From
iris
.
heap_lang
Require
Import
tactics
.
Import
uPred
.
Local
Hint
Extern
0
(
language
.
reducible
_
_
)
=>
do_step
ltac
:
(
eauto
2
).
...
...
heap_lang/notation.v
View file @
94216199
From
heap_lang
Require
Export
derived
.
From
iris
.
heap_lang
Require
Export
derived
.
Export
heap_lang
.
Arguments
wp
{
_
_
}
_
_
%
E
_
.
...
...
heap_lang/par.v
View file @
94216199
From
heap_lang
Require
Export
heap
spawn
.
From
heap_lang
Require
Import
wp_tactics
notation
.
From
iris
.
heap_lang
Require
Export
heap
spawn
.
From
iris
.
heap_lang
Require
Import
wp_tactics
notation
.
Import
uPred
.
Definition
par
:
val
:
=
...
...
heap_lang/spawn.v
View file @
94216199
From
program_logic
Require
Export
global_functor
.
From
heap_lang
Require
Export
heap
.
From
heap_lang
Require
Import
wp_tactics
notation
.
From
iris
.
program_logic
Require
Export
global_functor
.
From
iris
.
heap_lang
Require
Export
heap
.
From
iris
.
heap_lang
Require
Import
wp_tactics
notation
.
Import
uPred
.
Definition
spawn
:
val
:
=
...
...
heap_lang/substitution.v
View file @
94216199
From
heap_lang
Require
Export
lang
.
From
iris
.
heap_lang
Require
Export
lang
.
Import
heap_lang
.
(** The tactic [simpl_subst] performs substitutions in the goal. Its behavior
...
...
heap_lang/tactics.v
View file @
94216199
From
heap_lang
Require
Export
substitution
.
From
prelude
Require
Import
fin_maps
.
From
iris
.
heap_lang
Require
Export
substitution
.
From
iris
.
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 @
94216199
(** This file is essentially a bunch of testcases. *)
From
program_logic
Require
Import
ownership
hoare
auth
.
From
heap_lang
Require
Import
wp_tactics
heap
notation
.
From
iris
.
program_logic
Require
Import
ownership
hoare
auth
.
From
iris
.
heap_lang
Require
Import
wp_tactics
heap
notation
.
Import
uPred
.
Section
LangTests
.
...
...
heap_lang/wp_tactics.v
View file @
94216199
From
algebra
Require
Export
upred_tactics
.
From
heap_lang
Require
Export
tactics
derived
substitution
.
From
iris
.
algebra
Require
Export
upred_tactics
.
From
iris
.
heap_lang
Require
Export
tactics
derived
substitution
.
Import
uPred
.
(** wp-specific helper tactics *)
...
...
prelude/bsets.v
View file @
94216199
(* 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. *)
From
prelude
Require
Export
prelude
.
From
iris
.
prelude
Require
Export
prelude
.
Record
bset
(
A
:
Type
)
:
Type
:
=
mkBSet
{
bset_car
:
A
→
bool
}.
Arguments
mkBSet
{
_
}
_
.
...
...
prelude/co_pset.v
View file @
94216199
...
...
@@ -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]. *)
From
prelude
Require
Export
collections
.
From
prelude
Require
Import
pmap
gmap
mapset
.
From
iris
.
prelude
Require
Export
collections
.
From
iris
.
prelude
Require
Import
pmap
gmap
mapset
.
Local
Open
Scope
positive_scope
.
(** * The tree data structure *)
...
...
prelude/collections.v
View file @
94216199
...
...
@@ -3,7 +3,7 @@
(** This file collects definitions and theorems on collections. Most
importantly, it implements some tactics to automatically solve goals involving
collections. *)
From
prelude
Require
Export
base
tactics
orders
.
From
iris
.
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 @
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
.
Local
Open
Scope
positive
.
Class
Countable
A
`
{
∀
x
y
:
A
,
Decision
(
x
=
y
)}
:
=
{
...
...
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
.
...
...
prelude/prelude.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
From
iris
.
prelude
Require
Export
base
tactics
orders
...
...
prelude/pretty.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
strings
.
From
prelude
Require
Import
relations
.
From
iris
.
prelude
Require
Export
strings
.