Understand the library organization
masterThe library is organized into several top-level modules. Most theorems are separated into *Facts modules to allow parallel compilation and prevent universe inconsistencies.
Core Modules
- Basics: General-purpose definitions. Includes
Category(monoidal and iterative theories),Function(the category of Coq functions), andMonad(properties of monads and transformers likeMonadStateandMonadProp). - Core: The heart of the library. Contains
ITreeDefinition(type declarations and primitives),KTree(continuation trees),Subevent(extensible effect combinators), andITreeMonad. - Eq: The equational theory of interaction trees. Covers
Shallow(cofixpoint unfolding),Eq(strong bisimulation),UpToTaus(weak bisimulation), andSimUpToTaus(weak simulation). Includes theEqAxiomstating that strong bisimulation is propositional equality. - Indexed: Deals with indexed types
Type -> Type, includingSum,Function(event morphismsE ~> F), andRelation. - Interp: Transformation and interpretation logic. Includes
Interp(translate,interp),Handlers(event handlersE ~> itree F),Recursion(mrec,rec), andTraces(interpreting itrees as sets of traces). - Events: Common event types defined in
theories/Events.v.