A Coq library with the formalized theory of event structures and non-interleaving concurrency.
Currently includes a theory of the following semantic domains and their relationships:
- labelled transition systems
- pomset languages
- prime event structures
Also features several applications of the theory.
-
Formalization of several basic consistency models parametrized by the abstract datatype, defined according to the paper "Causal Consistency: Beyond Memory" by Matthieu Perrin, Achour Mostefaoui, Claude Jard (PPoPP 2016)
-
Incremental construction of prime event structures build from program-order and reads-from relations.
The library is under active development. Therefore the API is unstable and might be subject to further modifications.
For a more detailed description, see the documentation in the headers of source files.
-
common- common definitions, lemmas, and notationsutils.v- miscellaneousseq.v- various additions to seq theory from mathcomprel.v- additional facts about decidable binary relationsrel_algebra.v- variuos additions to relation-algebra packageorder.v- various additions to porder theory from mathcompwftype.v- interface for types with well-founded partial orderinhtype.v- interface for inhabited type, that is a type with one distinguished inhabitantident.v- interface for types that can be used as identifiersmonoid.v- theory of monoids and partial monoidsrewriting_system.v- a piece of rewriting systems theory
-
concur- semantic domains for concurrencylts.v- labelled transition systems and (linear) traceslposet.v- labelled partially ordered setspomset.v- pomsets as quotient typespomset_lts.v- a connection between pomset languages and labelled transition systemsprime_eventstruct.v- prime event structuresporf_eventstruct.v- prime event structure built from program-order and reads-from relationstransitionsystem.v- incremental construction of event structure
-
lang- syntax and semantics of concurrent languages and systemsrelaxed.v- relaxed memory models parametrized by an abstract datatypesharedmem.v- shared memory abstract datatyperegmachine.v- simple parallel register machine with shared memory