After retraction R-2026-05-18 the development is honest but thin.
This plan defines the falsifiable program to convert the retracted
claims back into theorems — or to confirm, on the project’s own gate
discipline, that they cannot be earned. Nothing in paper.adoc /
conservativity.adoc / types-abstract.adoc moves until the
corresponding gate here passes. Methodology — explicit pass/fail,
abandon criteria, outcomes logged in docs/retractions.adoc. The
canonical loci of the gate discipline are
docs/roadmap-gates.adoc (the protocol document, created 2026-05-18
to resolve the earlier dangling reference), docs/retractions.adoc
(the append-only retraction + earn-back log), this plan (the
falsifiable program), and docs/next-questions.adoc (the open
questions register).
The deflationary fact Echo = Σ is permanent and is not the
obstruction. The obstruction was that the previous structure was a
thin-poset reindexing with a carrier collapsing to ⊤, a join used
additively with no monoid/semiring multiplication, no nested functor,
and an interface that baked in ⊑-prop. "Earning back" means
building structure that does not have those defects, with Echo as
its grade-unit object — not redefining Echo.
Pillar F gate dependency graph (all PASSED as of 2026-05-27)
F1 (graded-comonad witness)
──make-or-break──
│
┌─────────────┼─────────────┐
│ │ │
↓ ↓ ↓
F4 (pullback UP) F2 (Echo- F3 (second
funext-qualified functor 2nd non-isomorphic
model) grade-monoid)
│
↓
F5 (full OFS — three slices)
│ │ │
↓ ↓ ↓
F5-1 F5-2 F5-3
strict diagonal factorisation
triangle lifting uniqueness-up-to-iso
Reading: F1 is the only make-or-break; F2 / F4 are independent
of F1 (both expected tractable, both PASSED); F3 is gated on F1
(passes after F1 lands). F5 (added 2026-05-27 post-F4 success
pattern) takes F4 as its template — same "funext as explicit
module parameter" discipline. F5's three slices are mutually
independent (each landed standalone), composed for full pass.F1 is make-or-break for the graded-comonad claim, and F3 is gated on it (F3 is not attempted until F1 passes). F2 and F4 are independent of F1 and proceed in parallel — they earn back qualified/real claims regardless of F1 (see "Recommended order of attack").
There is a grade monoid (M, ·, 1) and an indexed endofunctor
D : M → Set → Set with:
-
map : (A → B) → D r A → D r Bfunctorial (id/comp); -
counit
ε : D 1 A → A; -
comultiplication
δ : D (r · s) A → D r (D s A)— nested; -
the three graded-comonad laws (counit-left, counit-right, coassociativity/pentagon) as equalities of the above;
all under --safe --without-K, zero postulates, with D 1 (Echo f y)
the bare echo (Echo is the grade-unit object), and D r not
collapsing to a proposition/⊤ for r ≠ 1.
The candidate is the monoid-graded iterated-residue comonad:
-
Grade monoid
(ℕ, +, 0)(r= number of residue layers;1of the comonad = additive unit0). -
D 0 A = A;D (suc r) A = R (D r A)whereR Xis the non-collapsing residue carrier (EchoResidue-shaped:Σ X CertwithCertinformative, not⊤). -
ε : D 0 A → Ais the structural identity at the unit grade (legitimate for a graded comonad — the content is inD rbeing a real functor forr > 0and inδ). -
δ : D (m + n) A → D m (D n A)is the iterated-functor coherence, proved by induction onm(stdlib+recurses on the left and matchesD’s recursion, so the base case is definitional and the step is one `cong R). K-free and funext-free: it issubstalong an inductively proven type equality, andsubst/transport does not need K (K is UIP, not transport).
-
Coassociativity / pentagon for the iterated-functor identity does not close without K once
Certcarries non-trivial identity proofs. This is F1’s real test — the honest analogue of the olddegrade-compose, but now genuinely about nested functors. -
δdegenerates to the identity coercion in a way that a Petriček/Katsumata reader still reads as bookkeeping. Mitigation bar:D rmust be demonstrably a non-trivial functor (a separating witness: two elements ofD 2 Adistinguished byCert, soDis not constantlyAor⊤). -
Naturality of
ε/δneeds funext (they are natural transformations between endofunctors). Mitigation: state naturality pointwise and only claim a graded comonad in the pointwise/“wild” sense, disclosed — or accept F1 fails for the strict categorical claim.
F1 passes iff map/ε/δ and all three laws typecheck
--safe --without-K, zero postulates, with the non-triviality
separating witness for D 2. F1 fails if any law needs K, funext,
or a postulate, or if D r cannot be shown non-trivial.
If F1 fails, the graded-comonad claim stays retracted permanently;
record in docs/retractions.adoc as a second negative result
(strengthens the methodology story, like EI-2). Do not attempt
F3/F4. F2 may still proceed (it is independent of F1).
Independent of F1 (about the Echo functor, not the comonad). The one R2 item rated "fixable with bounded work".
A model instance that genuinely uses EchoRelational.StepND
(non-deterministic, StepND : Bool → Bool → Set with a relation that
is not a graph of a function), in which the Echo-functor laws hold,
and whose agreement with the deterministic model is a theorem with
content (not refl, not Σ-η on × ⊤).
Passes iff a StepND-based model is instantiated into the same
interface the deterministic model uses, the functor laws hold, and
the agreement lemma has a non-refl proof obligation. Fails if the
only way to make it agree is to trivialise the relation back to a
graph.
Gated on F1. Instantiate F1’s graded-comonad interface at a
different grade monoid (e.g. a tropical or multiplicative semiring,
or a free monoid) — not the same monoid with a × ⊤ carrier. Pass
iff the laws hold for two non-isomorphic grade monoids and the
abstraction does not carry a field equivalent to the old ⊑-prop
(no single hypothesis bakes in the result).
Not "retracted → unconditional"; "retracted → true, conditional".
Parameterise the terminality theorem by an explicit funext
hypothesis funext (a module parameter, not a postulate), exactly
as Echo.agda parameterises cancel-iso by the triangle identities.
Then echo-pullback-univ-strict : funext → (m' ≡ m) is a genuine
universal property given funext, with zero postulates retained.
Passes iff strict terminality typechecks as a function of an
explicit funext parameter, zero postulates, and the unconditional
pointwise result is kept as the funext-free corollary. This is
expected to be tractable; it earns back a qualified universal
property, stated as such.
Same shape as F4. The R-2026-05-18 discipline narrowed the OFS
claim to factorisation-existence + fibre-identification at the
K-free level (EchoOrthogonalFactorizationSystem.agda); the
COMPLETE (equivalence, projection) orthogonal factorisation
system requires uniqueness up to iso + the diagonal lifting
property, both of which need funext to STATE (function-level
equations rather than pointwise).
F5 earns back the function-level OFS clauses as TRUE CONDITIONAL
on an explicit funext parameter (a module hypothesis, never a
postulate), exactly as F4 does for the pullback’s strict
terminality. Three slices, mutually independent, each in its own
module in the F4 template style:
-
F5-1 — Strict factorisation triangle.
f ≡ proj₁ ∘ encode fas a function equation, lifting the existing K-free pointwiseecho-factorisationvia funext. Three lines.proofs/agda/EchoOFSUnivF5.agda(lands first; simplest direct analogue ofecho-pullback-univ-strict). -
F5-2 — Diagonal lifting property. Given a commutative square
e : A → A'(equivalence viaHasInverse) +p : Σ B (Echo f) → B(=proj₁) +h : A → Σ B (Echo f)+k : A' → Bwithproj₁ ∘ h ≡ k ∘ epointwise, a uniquelift : A' → Σ B (Echo f)exists withlift ∘ e ≡ handproj₁ ∘ lift ≡ k. Construction:lift x = h (e⁻¹ x). Pointwise commutativity K-free; strict form needs funext. -
F5-3 — Factorisation uniqueness up to iso. Given any other
g : A → Xequivalence +p : X → Bwithp ∘ g ≡ fpointwise, construct a canonicalφ : X ↔ Σ B (Echo f)withproj₁ ∘ φ.to ≡ pandφ.to ∘ g ≡ encode f(both strict, given funext). Path-algebra obligations on the round-trips need funext.
Passes iff all three slices typecheck as functions of an
explicit funext parameter, zero postulates, --safe --without-K,
no escape pragmas; AND the unconditional pointwise corollaries
are kept as the funext-free corollaries. Slice F5-1 alone gives
a partial pass (analogue of "F1 not yet" — feasibility
positive, full earn-back open). All three together give a full
pass earning back the qualified OFS.
-
F1 first (make-or-break). Begin with the feasibility spike
proofs/agda/EchoGradedComonadF1.agda(prototype, not wired intoAll.agda/Smoke.agdauntil it passes). -
F4 and F2 in parallel (both independent of F1; both expected tractable). They earn back qualified/real claims regardless of F1.
-
F3 only if F1 passes.
-
On each gate: update
paper.adoc/conservativity.adoc/types-abstract.adocto the earned claim, and log the outcome (pass or fail) indocs/retractions.adocas a follow-up to R-2026-05-18. A failed gate is a second negative result, not a silent revert.
-
No postulates, no escape pragmas,
--safe --without-K, ever — a gate "passed" by weakening these is failed. -
No prose claim moves ahead of its gate. The reframed docs stay as they are until the corresponding gate is green.
-
"Triage over partial hack": if a gate is close but not closed, it is failed and logged, not shipped behind softened wording.
Full-repo audit 2026-05-18. The --safe --without-K build carries
zero postulates and zero escape pragmas (CI-grep-enforced); every
item below is therefore either a disclosed-in-comment open obligation
or a structural-fidelity gap, not hidden debt. This ledger is the
single index; it moves no claim.
| Id | Debt | State |
|---|---|---|
A1 |
F1 — |
PASSED 2026-05-20 — |
A2 |
F2 — real second model of the bare Echo functor via
|
PASSED 2026-05-18 — |
A3 |
F3 — independent second model of the comonad at a different grade
monoid (no |
PASSED 2026-05-20 — |
A4 |
F4 — strict universal property as a function of an explicit
|
PASSED 2026-05-18 — |
B |
Buchholz order: |
Disclosed structural-fidelity gap. Off the echo-types paper critical path. Long-tail workstream. |
C |
|
Disclosed. Does not block EI-2 (terminated-negative). Completeness nice-to-have, lowest priority. |
D |
Doc-integrity: previously this entry recorded that
|
CLOSED 2026-05-20. |
E1 |
|
Disclosed. Lowest priority; not paper-blocking. |
E2 |
Doc-integrity (external): the |
Fixed in this session (index line corrected to match the body). |
-
F4 + F2 in parallel (A4, A2) — DONE 2026-05-18: both passed, spikes wired into
All/Smoke, scoped claims moved (follow-up F-2026-05-18a). Each earned back a qualified/real claim independently of F1. -
F1 coassoc (A1) — DONE 2026-05-20: passed via the predicted
δ-naturality-over-Rfactoring; unblocks F3 (A3). -
F3 (A3) — DONE 2026-05-20: passed via the
GradedComonadStructureinterface plus two non-isomorphic- grade-monoid instances. Closes the second-models claim for the graded comonad witness — see follow-up F-2026-05-20b for scope. -
Doc-integrity (D) — reconcile alongside step 1; removes a drift vector at near-zero cost.
-
Buchholz (B) — separate long-tail; keep the
ExtendedOrderwrapper load-bearing. Not paper-blocking. -
characteristic/© — lowest priority; EI-2 already terminated.
-
2026-05-18 — created. Pillar F opened post-R-2026-05-18.
-
2026-05-18 — full-repo proof-debt audit. Added the consolidated ledger above (items A–E). Confirmed zero postulates / zero escape pragmas across all 88 modules; no hidden debt. No claim moved. F1 feasibility spike is the immediate next action. No gate passed yet; no reframed claim has moved.
-
2026-05-18 — F1 feasibility spike run (
proofs/agda/EchoGradedComonadF1.agda, typechecks--safe --without-K, zero postulates). Result: F1 NOT YET PASSED, feasibility strongly positive (evidence-based, not speculative). The monoid-graded iterated-residue candidate delivers, mechanised: a non-collapsing graded functorD(with a proven separating witnessD2-nontrivial—D ris not⊤/a prop), functor laws (mapD-id/mapD-∘), the nested comultiplicationδ : D (m + n) A → D m (D n A), and two of the three graded-comonad laws proved:gc-counit-r(definitional) andgc-counit-l(by induction on the grade; the only non-structural tool is ℕ-UIP, which is K-free via decidable equality). The make-or-break foundational question is answered: Agda demanded no K, no funext, no postulate anywhere — the obstruction this gate feared did not materialise. The single remaining obligation isgc-coassoc(coassociativity): its base case and skeleton close, the inductive step has an isolated proof-engineering type-mismatch (m != m + (n + p)) requiring an explicit δ-naturality-over-Rlemma rather than the ad-hoccoe-cong-R ∘ sympush. Stated in-file as a precise OPEN obligation — not postulated, not softened. No reframed claim has moved (F1 requires all three laws); the gate stays open untilgc-coassoccloses--safe --without-Kzero-postulate. -
2026-05-18 — Gates F4 and F2 PASSED.
EchoPullbackUnivF4.agda(F4: terminal-cone UP as a function of an explicitfunextparameter, never a postulate; pointwise corollary kept) andEchoStepNDModelF2.agda(F2: genuine second model of the bare Echo functor on the non-graph relationStepND, content-bearing agreement). Both--safe --without-K, zero postulates; wired intoAll.agdaand pinned inSmoke.agda; full + smoke build green. Scoped claims moved inpaper.adoc/conservativity.adoc/types-abstract.adoc; logged as retraction follow-up F-2026-05-18a. Strictly scoped: F2 is the Echo functor only — the graded-comonad, model-independence, and conservativity claims remain retracted; F1 (coassoc) and F3 remain open. -
2026-05-20 — Gate F1 PASSED.
gc-coassocclosed via the predictedδ-naturality-over-R(δ-suc) +subst-D-sucfactoring; stdlib-assoc (suc m) n p` reduces definitionally to `cong suc (-assoc m n p)(recursion on left), so the two ℕ-equation proofs on the chain ends are syntactically identical and ℕ-UIP was not needed for coassoc itself.EchoGradedComonadF1.agdanow ships all three graded-comonad laws + the separating witnessD2-nontrivial;--safe --without-K, zero postulates, no funext; wired intoAll.agdaand pinned inSmoke.agda. Full + smoke build green. Retraction follow-up F-2026-05-20a.Strictly scoped (re-read with care): F1 earns back the existence of a graded comonad with Echo as the grade-unit object (
D 0 (Echo f y)is the bare echo, the nested comultiplication is real, all three laws hold, the carrier is non-trivial). It does not retroactively makeEchoGradeda graded comonad —EchoGradedremains a thin-poset reindexing modality per R-2026-05-18, on a different structure (Grade = 3-element lattice, no nested family, no monoid multiplication, noD r r' ⇒ D r ∘ D r'). The paper’s title and central thesis (Echo as a reindexing modality) stand unchanged; the F1 result is an additional mechanised contribution sitting besideEchoGraded, not a reinstatement of it. F3 (independent second comonad model at a different grade monoid) is now unblocked. -
2026-05-20 — Gate F3 PASSED.
EchoGradedComonadInterface.GradedComonadStructureis an abstract record packaging the F1 graded-comonad signature (grade monoid
graded functor + counit + nested comultiplication + monoid laws
functor laws + the three comonad laws) without a⊑-prop-equivalent field. Two non-isomorphic-grade-monoid instances inhabit it:-
EchoGradedComonadInstance1.nat-instance— F1 at the commutative monoid(ℕ, +, 0); -
EchoGradedComonadInstance2.list-instance— the free monoid(List Tag, ++, [])over a two-elementTagwith per-element residue layersR smol A = A × BoolandR big A = A × ℕ. All three comonad laws proved (gc-counit-rdefinitional;gc-counit-l/gc-coassocby structural induction on the list, cons step splitting on the headTag, mirroring F1’sδ-naturality +subst-D-sucfactoring).The grade monoids are non-isomorphic — one commutative, one not; the witness
tag-list-non-commutativedischarges this directly. The interface record contains no⊑-prop-equivalent field; both instances inhabit it cleanly without one.--safe --without-K, zero postulates, no funext; wired intoAll.agdaand pinned inSmoke.agda. Retraction follow-up F-2026-05-20b.Strictly scoped (re-read with care): F3 earns back the "two-models" claim for the graded-comonad witness introduced by F1 — there are two genuinely non-isomorphic grade-monoid models of that interface. It does not earn back the older
EchoRelModeltwo-models claim retracted at R-2026-05-18 finding 3, which was aboutGCLawsinstantiated atset-modelandrel-model. Those instantiations remain at the same grade poset with⊑-propbaked in as a field; that retraction stands. The two earn-backs (F3 here, and the originalGCLawsclaim) are about different abstract interfaces and are not interconvertible.
-
-
2026-05-27 — Gate F5 PASSED (all three slices). The full (equivalence, projection) orthogonal factorisation system on Type, earned back at the qualified level (funext as explicit parameter throughout, never a postulate). Three slices, each in the F4 template (pointwise K-free + funext-strict via a one-line funext lift), all wired into
All.agdaand pinned inSmoke.agda:-
F5-1 —
EchoOFSUnivF5.echo-factorisation-strict (funext) : f ≡ proj₁ ∘ encode f. Three-line lift of the existing K-free pointwiseEchoOrthogonalFactorizationSystem.echo-factorisation. -
F5-2 —
EchoOFSUnivF5Diag(modulesPointwise+Strict). Diagonal lifting property: given a commutative square with left equivalence (viaHasInverse) + right projection + the commutativity witness, the canonical liftλ x → h (e⁻¹ x)exists, satisfies both triangles pointwise, is unique pointwise; strict forms via funext. -
F5-3 —
EchoOFSUnivF5Iso(modulesPointwise+Strict). Factorisation uniqueness up to iso: given any second (equivalence, projection) factorisationf = p ∘ g, the canonical isoφ : X ↔ Σ B (Echo f)constructed via the compositionφ.to = encode f ∘ g⁻¹(routing through the existing K-freeencode-decode/decode-encoderound-trips — no triangle identity required) satisfiesφ.to ∘ g ≡ encode fandproj₁ ∘ φ.to ≡ p, both strict given funext.All three slices
--safe --without-K, zero postulates, no funext in the trusted base (funext as module hypothesis only). Unconditional pointwise corollaries kept as funext-free parts in each module. Retraction follow-up F-2026-05-27a logged indocs/retractions.adoc.Strictly scoped: F5 earns back the (equivalence, projection) factorisation system AT THE QUALIFIED LEVEL — true given funext, stated as such. The unconditional pointwise content (factorisation existence + fibre identification per
EchoOrthogonalFactorizationSystem) remains the funext-free load-bearing artefact. The (epi, mono) image-factorisation form (`EchoImageFactorization’s deferred upgrade) still requires propositional truncation; F5 does not address that — it earns back the UPPER (equivalence, projection) form of the OFS pair.
-