Rocq Development overview
- common
- STLC: Simply Typed Lambda Calculus
- REC: Fine-grained CBV with recursive values and recursive types
- syntax.sig
Autosubst input for terms
- rec.syntax
Generate term syntax
- rec.typesyntax
Autosubst input for REC types
- rec.typesyntax
Generated type syntax
- rec.reduction
Small-step operational semantics. Includes some notes about Autosubst and
various properties of the small-step relation.
- rec.typing
Typing relation, preservation and progress proofs
- rec.extensions
Derived syntactic forms for fine-grained CBV
- rec.semsound
Cannot show termination for multistep evaluation (incomplete proof)
- rec.iprop
propositions indexed by steps
- rec.stepsLR
Definition of step-indexed logical relation via strong induction (requires proof irrelevance)
- rec.steps
Proof of semantic soundness for step-indexed logical relation
- rec.stepsAlt
Proof of semantic soundness for step-indexed logical relation, uses structural induction only,
and no proof irrelevance
- rec.prim
Primitive reductions in a separate judgement.
- rec.stack
Operational semantics with an explicit stack.
- DIV: type-and-effect system for nontermination
- MODAL: monadic type system for nontermination
- modal.syntax
- modal.modal Call-by-value language
with monadic encapsulation of nontermination
- modal.modal_intrinsic
Interpretation of annotated version of the modal type system
in type theory (i.e. Rocq’s Gallina language). Requires an
intrinistically-typed version of the syntax.
- CONTROL: exceptions, continuations, and effect handlers
- UNTYPED: untyped lambda calculus and program equivalence