diff --git a/README.md b/README.md index 3b38ae5c476bf7e1631d07d141560f8639c0eaf5..6aa35aab72ddb52b26940d6193a66883359e481e 100644 --- a/README.md +++ b/README.md @@ -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](theories/base_logic) defines the Iris base logic and +* The folder [base_logic](iris/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](theories/base_logic/lib) contains some generally useful + * The subfolder [lib](iris/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](theories/program_logic) specializes the base logic +* The folder [program_logic](iris/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](theories/bi) contains the BI++ laws, as well as derived +* The folder [bi](iris/bi) contains the BI++ laws, as well as derived connectives, laws and constructions that are applicable for general BIS. -* The folder [proofmode](theories/proofmode) contains +* The folder [proofmode](iris/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](theories/si_logic) defines a "plain" step-indexed logic +* The folder [si_logic](iris/si_logic) defines a "plain" step-indexed logic and shows that it is an instance of the BI interface. ## Case Studies diff --git a/docs/equalities_and_entailments.md b/docs/equalities_and_entailments.md index 255e7e8614fe7576b9aa907bcd33ce293155ab4b..39c4fc76606bf4bf6a0e2417969fa8681788b2ea 100644 --- a/docs/equalities_and_entailments.md +++ b/docs/equalities_and_entailments.md @@ -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`](../theories/algebra/ofe.v) +`discrete_fun` documentation in [`iris.algebra.ofe`](../iris/algebra/ofe.v) for further details. In both OFE function spaces (`A -n> B` and `A -d> B`), setoid equality is diff --git a/docs/resource_algebras.md b/docs/resource_algebras.md index ca3638f6f85149aba7fdbaa084bbe43e5dfe8574..ce80628b549f0093d4eb67846acc457fc8e2fd49 100644 --- a/docs/resource_algebras.md +++ b/docs/resource_algebras.md @@ -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`](theories/base_logic/lib/gen_heap.v): +[`gen_heap_init`](iris/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`](theories/algebra/ofe.v): functors from COFEs to OFEs. -- [`rFunctor`](theories/algebra/cmra.v): functors from COFEs to cameras. -- [`urFunctor`](theories/algebra/cmra.v): functors from COFEs to unital +- [`cFunctor`](iris/algebra/ofe.v): functors from COFEs to OFEs. +- [`rFunctor`](iris/algebra/cmra.v): functors from COFEs to cameras. +- [`urFunctor`](iris/algebra/cmra.v): functors from COFEs to unital cameras. Besides, there are the classes `cFunctorContractive`, `rFunctorContractive`, and