Predecessor: v1.3 candidate, RATIFIED at df9e7b7 (RATIFICATION-v1.3.md).
Status of this doc: PASSED / historical release receipt. v2.0.0 is tagged with peeled target b4bd02b (2026-06-29).
This file began as the public-contract promotion gate: move the Witnessed Derivation Calculus from ratified experiment to supported public surface, with a tested migration path and at least one non-experimental consumer. That packaging gate shipped in 1.4.0. It governed a compatibility-surface release, not permission to state or prove the calculus; it is not a current downstream-consumer prerequisite for formal work.
v2.0.0 then used the reserved WDC integer for the structural strengthening that the
frontier register required: model-independent admitting-class normalization
(normal_form_iff_of_commutes) plus a necessity counterexample
(commutes_is_necessary), with the audit fence hardened around the release. Existing 1.x
imports remain additive/non-breaking; the integer marks the structural milestone, not API
churn.
v2.0.0b4bd02bLeanProofs.Witnessed.*, default target)MIGRATION-NOTES.md, README/CHANGELOG alignment)LeanProofs/Witnessed/Examples.lean); stronger downstream fixture added at downstream/wdc-v2-consumer/2.0.0, tagged, released)Public module surface. Successor stops living only under experiments/. Canonical modules
land under the supported LeanProofs/Admissibility namespace (or its deliberate successor), the
public aggregator imports them, and they build in the default target — not only via
lake build Successor.
Stable contract. Freeze names and boundaries (no further terminology churn without
deprecation) for: the witnessed-derivation judgment; paid composition / cut; revocation
non-manufacture; normalization (freshness instance in 1.4.0; model-independent admitting-class theorem in 2.0.0);
WitnessedDiscipline as a model filter beside the calculus; the four discipline axes;
Discriminating retired/factored through SemanticNontrivial.
Migration from 1.2. Exact old→new import and theorem-name map; compatibility shims where cheap and honest; explicit removals where compatibility would preserve the wrong abstraction. A public 1.2 user can tell whether they must change anything without reading repository archaeology.
experiments/no_free_lift_wiring/
uses the supported API and compiles in CI. Two grades, either satisfies 2.0 — but the completion
record must say which, because an external consumer is stronger evidence:
agent_gov correspondence does NOT satisfy this gate — AG is operational evidence, not a Lean dependency or verified implementation.
Release verification. Default build green; public examples green; no live sorry/admit;
recorded axiom footprints still within the ratified ceiling (≤ [propext, Quot.sound]); clean
public import graph; no accidental dependency on playground/quarry/scratch branches; release
built from a clean checkout, not merely the current warm worktree.
Public claim alignment. README, CHANGELOG, module headers, migration note, and ratification record must all agree that: the name is Witnessed Derivation Calculus; it is a narrow calculus of witnessed movement, not a maximal unifying kernel; normalization is an admitting-class theorem, not universal normalization; the discipline is adjacent, not constitutive; agent_gov is an implemented/convergent external instance, not a verified reduction; refusal legibility remains future work.
Operator promotion. The operator explicitly accepts the supported API and migration cost, then:
removes candidate language; sets version 2.0.0; tags and releases; retires or redirects the old
public aggregator/shim per the migration decision.
The final promotion record must cite the verification commit/receipt (gate 5) and mark each of gates 1–6 explicitly PASS — not a bare “operator accepts” checkbox. Sign-off cites evidence, or it is just another robe.
These are later work or separate projects.
df9e7b7 for v1.3; v2.0.0 at peeled target b4bd02b for the structural release).Keep 2.0 closed. Future work should open a new named slice instead of reusing this gate: reachability-based composition classification, cut-elimination, non-suppression, or witnessed clocks each needs its own distinct formal statement, overlap review, and receipt. None waits on a downstream consumer.