This repository develops a call-by-value λ-calculus with static delimited control, shared prompts, and reductions that exploit statically known continuations. Delimiters carry data, which supports dynamic binding and deep effect handlers.
The paper source is in tex/fc.tex; the mechanizations use Abella and Rocq.
The active Rocq proof is split by responsibility:
coq-shared-prompts/SharedPrompts.vdefines syntax, lifting, substitution, contexts, and the reference reduction.coq-let-s-normalization/StructuralReduction.vdefines the contextual closures of let-shift and right-associating let.coq-let-s-normalization/DeGrooteNormalization.vproves strong normalization of let-shift alone.coq-let-s-normalization/WeightedMeasures.v,WeightedNormalization.v, andLetAssociationNormalization.vprove joint normalization of let-shift and let association.AdministrativeReduction.vdefines the two-mode presentation:admin_stepis closed under all term constructors, whiletail_step κdescends only through let bodies below continuationκ.AdministrativeAlgebra.vcontains lifting, renaming, and replacement algebra.AdministrativeResiduals.vcontains derived valleys and mixed-peak gadgets.FrameCompatibility.vproves compatibility with installed one-let frames.AdministrativeMeasures.vestablishes the measure profiles used for termination. Its per-rule contextual relations are proof devices, not an alternative operational semantics.AdministrativeNormalization.vproves termination directly foradmin_step.AdministrativeConfluence.vproves local confluence by mutual induction over one-step peaks and derives confluence by Newman's lemma.coq-shared-prompts/CoreParallel.vdefines parallel reduction for the lambda/control core with a scoped payload environment;CoreParallelCompatibility.vproves its diamond property.
The headline results are:
admin_step_locally_confluent;admin_step_confluent(by Newman's lemma);admin_strongly_normalizing;admin_values_strongly_normalizing.
The administrative results are closed under Rocq's global context: they use
no axioms or section hypotheses. core_parallel_diamond currently uses
functional extensionality through its substitution algebra.
Build everything with:
opam exec -- dune build -j 1The original Abella development is in abella/. It targets Abella commit
c17cb187.