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
Matthieu Sozeau
Iris
Commits
7b99b90e
Commit
7b99b90e
authored
Nov 12, 2020
by
Ralf Jung
Browse files
add prelude to readme (and fix a bunch of links while we are at it)
parent
b397b3ea
Changes
3
Hide whitespace changes
Inline
Sidebyside
README.md
View file @
7b99b90e
...
...
@@ 71,36 +71,38 @@ the Iris development itself.
## Directory Structure
*
The folder
[
algebra
](
theories/algebra
)
contains the COFE and CMRA
*
The folder
[
prelude
](
iris/prelude
)
contains modules imported everywhere in
Iris.
*
The folder
[
algebra
](
iris/algebra
)
contains the COFE and CMRA
constructions as well as the solver for recursive domain equations.
*
The folder
[
base_logic
](
theo
ri
e
s/base_logic
)
defines the Iris base logic and
*
The folder
[
base_logic
](
i
ris/base_logic
)
defines the Iris base logic and
the primitive connectives. It also contains derived constructions that are
entirely independent of the choice of resources.
*
The subfolder
[
lib
](
theo
ri
e
s/base_logic/lib
)
contains some generally useful
*
The subfolder
[
lib
](
i
ris/base_logic/lib
)
contains some generally useful
derived constructions. Most importantly, it defines composable
dynamic resources and ownership of them; the other constructions depend
on this setup.
*
The folder
[
program_logic
](
theo
ri
e
s/program_logic
)
specializes the base logic
*
The folder
[
program_logic
](
i
ris/program_logic
)
specializes the base logic
to build Iris, the program logic. This includes weakest preconditions that
are defined for any language satisfying some generic axioms, and some derived
constructions that work for any such language.
*
The folder
[
bi
](
theo
ri
e
s/bi
)
contains the BI++ laws, as well as derived
*
The folder
[
bi
](
i
ris/bi
)
contains the BI++ laws, as well as derived
connectives, laws and constructions that are applicable for general BIS.
*
The folder
[
proofmode
](
theo
ri
e
s/proofmode
)
contains
*
The folder
[
proofmode
](
i
ris/proofmode
)
contains
[
MoSeL
](
http://irisproject.org/mosel/
)
, which extends Coq with contexts for
intuitionistic and spatial BI++ assertions. It also contains tactics for
interactive proofs. Documentation can be found in
[
proof_mode.md
](
docs/proof_mode.md
)
.
*
The folder
[
heap_lang
](
theories/
heap_lang
)
defines the MLlike concurrent heap
*
The folder
[
heap_lang
](
iris_
heap_lang
)
defines the MLlike concurrent heap
language
*
The subfolder
[
lib
](
theories/
heap_lang/lib
)
contains a few derived
*
The subfolder
[
lib
](
iris_
heap_lang/lib
)
contains a few derived
constructions within this language, e.g., parallel composition.
For more examples of using Iris and heap_lang, have a look at the
[
Iris Examples
](
https://gitlab.mpisws.org/iris/examples
)
.
*
The folder
[
tests
](
theories/
tests
)
contains modules we use to test our
*
The folder
[
tests
](
tests
)
contains modules we use to test our
infrastructure. Users of the Iris Coq library should
*not*
depend on these
modules; they may change or disappear without any notice.
*
The folder
[
si_logic
](
theo
ri
e
s/si_logic
)
defines a "plain" stepindexed logic
*
The folder
[
si_logic
](
i
ris/si_logic
)
defines a "plain" stepindexed logic
and shows that it is an instance of the BI interface.
## Case Studies
...
...
docs/equalities_and_entailments.md
View file @
7b99b90e
...
...
@@ 71,7 +71,7 @@ possible as it requires the caller to specifically package up function and proof
When an OFE structure on a function type is required but the domain is discrete,
one can use the type
`A d> B`
. This has the advantage of not bundling any
proofs, i.e., this is notation for a plain Coq function type. See the
`discrete_fun`
documentation in
[
`iris.algebra.ofe`
](
../
theo
ri
e
s/algebra/ofe.v
)
`discrete_fun`
documentation in
[
`iris.algebra.ofe`
](
../
i
ris/algebra/ofe.v
)
for further details.
In both OFE function spaces (
`A n> B`
and
`A d> B`
), setoid equality is
...
...
docs/resource_algebras.md
View file @
7b99b90e
...
...
@@ 123,9 +123,9 @@ Class gen_heapG (L V : Type) (Σ : gFunctors) `{Countable L} := {
Such modules always need some kind of "initialization" to create an instance
of their type class. For example, the initialization for
`heapG`
is happening
as part of
[
`heap_adequacy`
](
theories/
heap_lang/adequacy.v
)
; this in turn uses
as part of
[
`heap_adequacy`
](
iris_
heap_lang/adequacy.v
)
; this in turn uses
the initialization lemma for
`gen_heapG`
from
[
`gen_heap_init`
](
theo
ri
e
s/base_logic/lib/gen_heap.v
)
:
[
`gen_heap_init`
](
i
ris/base_logic/lib/gen_heap.v
)
:
```
coq
Lemma
gen_heap_init
`
{
gen_heapPreG
L
V
Σ
}
σ
:
(==>
∃
_
:
gen_heapG
L
V
Σ
,
gen_heap_ctx
σ
)%
I
.
...
...
@@ 220,9 +220,9 @@ F (X,X⁻) := gmap K (agree (nat * ▶ X))
To make it convenient to construct such functors and prove their contractivity,
we provide a number of abstractions:

[
`cFunctor`
](
theo
ri
e
s/algebra/ofe.v
)
: functors from COFEs to OFEs.

[
`rFunctor`
](
theo
ri
e
s/algebra/cmra.v
)
: functors from COFEs to cameras.

[
`urFunctor`
](
theo
ri
e
s/algebra/cmra.v
)
: functors from COFEs to unital

[
`cFunctor`
](
i
ris/algebra/ofe.v
)
: functors from COFEs to OFEs.

[
`rFunctor`
](
i
ris/algebra/cmra.v
)
: functors from COFEs to cameras.

[
`urFunctor`
](
i
ris/algebra/cmra.v
)
: functors from COFEs to unital
cameras.
Besides, there are the classes
`cFunctorContractive`
,
`rFunctorContractive`
, and
...
...
Write
Preview
Markdown
is supported
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