Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Iris
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Monitor
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Pierre Roux
Iris
Commits
7b99b90e
Commit
7b99b90e
authored
4 years ago
by
Ralf Jung
Browse files
Options
Downloads
Patches
Plain Diff
add prelude to readme (and fix a bunch of links while we are at it)
parent
b397b3ea
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
README.md
+12
-10
12 additions, 10 deletions
README.md
docs/equalities_and_entailments.md
+1
-1
1 addition, 1 deletion
docs/equalities_and_entailments.md
docs/resource_algebras.md
+5
-5
5 additions, 5 deletions
docs/resource_algebras.md
with
18 additions
and
16 deletions
README.md
+
12
−
10
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://iris-project.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 ML-like concurrent heap
*
The folder
[
heap_lang
](
iris_
heap_lang
)
defines the ML-like 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.mpi-sws.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" step-indexed logic
*
The folder
[
si_logic
](
i
ris/si_logic
)
defines a "plain" step-indexed logic
and shows that it is an instance of the BI interface.
## Case Studies
...
...
This diff is collapsed.
Click to expand it.
docs/equalities_and_entailments.md
+
1
−
1
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
...
...
This diff is collapsed.
Click to expand it.
docs/resource_algebras.md
+
5
−
5
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
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment