Skip to content

Commit 25986ae

Browse files
Earn-back: Gates F4 + F2 PASSED (retraction follow-up F-2026-05-18a) (#50)
Stacked on #49 (proof-debt ledger) → #47 (corrective reframe). Two Pillar F earn-back gates pass, each strictly to its mechanised strength. ## Verified - **F4** — `proofs/agda/EchoPullbackUnivF4.agda`: strict terminal-cone universal property `m' ≡ m` as a function of an **explicit `funext` module parameter** (`FunExt₀`, *never a postulate* — the `Echo.agda` cancel-iso idiom). Funext-free pointwise mediator kept as the corollary. Unconditional claim **stays retracted**. - **F2** — `proofs/agda/EchoStepNDModelF2.agda`: a genuine second model of the **bare Echo functor** on `EchoRelational.StepND`, provably **not the graph of any function** under any state relabelling (`nd-not-graph`, checked `true ≢ false`). Same interface the deterministic model uses (`EchoFunctorModel`; functor laws via generic `map-rel-id`/`map-rel-comp`); agreement has content (`StepND` fibre = disjoint sum of deterministic branches by constructor case analysis — not `refl`, not Σ-η on `× ⊤`). Both `--safe --without-K`, **zero postulates**, wired into `All.agda`, pinned in `Smoke.agda`. Full + smoke build green (`agda All.agda` / `Smoke.agda` exit 0). ## Scope discipline (what is NOT earned back) F2 is the **Echo functor only**. The graded-comonad claim (no nested `D_r D_s`), modality-level model-independence, and the conservativity metatheorem **remain fully retracted**. Gates **F1** (coassoc open) and **F3** (gated on F1) remain open. No claim moved beyond its hypothesis license. ## Docs - `docs/retractions.adoc` — append-only follow-up **F-2026-05-18a** under R-2026-05-18 (entry not edited; policy-compliant). - `paper.adoc` — §3 NOTE (F4 conditional), §6 NOTE (F2 scoped), conclusion partial-earn-back paragraph. - `conservativity.adoc` — scope bullet + dated revision-history entry (statement unchanged: still *evidence for*). - `types-abstract.adoc` — contributions 2 & 5 scoped addenda (submission-ready status remains withdrawn). - `earn-back-plan.adoc` — ledger rows A2/A4 → PASSED, Status + recommended-order updated. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 313d444 commit 25986ae

9 files changed

Lines changed: 470 additions & 5 deletions

File tree

docs/echo-types/conservativity.adoc

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,14 @@ proof*. Any reintroduction of a postulate or weakening of
142142
dependency. The real funext-relativity is the *pointwise-only*
143143
mediator property of the pullback presentation (`paper.adoc` §3),
144144
now disclosed as the boundary rather than presented as a feature.
145+
* Earn-back, scoped (follow-up F-2026-05-18a, 2026-05-18): the
146+
pullback's strict terminality is now mechanised *conditional on an
147+
explicit `funext` parameter* (`EchoPullbackUnivF4.agda`; not a
148+
postulate — the trusted base is unchanged), and a genuine second
149+
model of the *bare Echo functor* (not the modality) exists on the
150+
non-graph relation `StepND` (`EchoStepNDModelF2.agda`). These do
151+
*not* widen the conservativity claim above: it remains *evidence
152+
for*, not a proof, and the modality-level retractions stand.
145153

146154
== Revision policy
147155

@@ -169,3 +177,12 @@ recorded reason. Append-only revision history.
169177
and `paper.adoc` §"Reframing note". No Agda module changed; the
170178
artefacts are exactly as strong as before — only the prose claims
171179
are corrected downward.
180+
* *2026-05-18 — Gates F4/F2 earned back (scoped).* Added the
181+
scope/non-claims bullet recording that strict terminality is now
182+
mechanised conditional on an explicit `funext` parameter
183+
(`EchoPullbackUnivF4.agda`, no postulate) and that a genuine second
184+
model of the *bare Echo functor* exists on the non-graph relation
185+
`StepND` (`EchoStepNDModelF2.agda`). The conservativity statement
186+
<<thm-conservativity>> is unchanged: still *evidence for*, not a
187+
proof; modality-level retractions stand. Recorded reason:
188+
`docs/retractions.adoc` follow-up F-2026-05-18a.

docs/echo-types/earn-back-plan.adoc

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,9 @@ single index; it moves no claim.
196196
| A2
197197
| *F2* — real second model of the bare Echo functor via
198198
`EchoRelational.StepND`, non-`refl` agreement lemma.
199-
| Unstarted. Independent of F1. Rated tractable.
199+
| *PASSED 2026-05-18* — `proofs/agda/EchoStepNDModelF2.agda`,
200+
`--safe --without-K`, zero postulates, wired into `All`/`Smoke`.
201+
Retraction follow-up F-2026-05-18a.
200202

201203
| A3
202204
| *F3* — independent second model of the comonad at a different grade
@@ -206,7 +208,9 @@ single index; it moves no claim.
206208
| A4
207209
| *F4* — strict universal property as a function of an explicit
208210
`funext` *module parameter* (never a postulate).
209-
| Unstarted. Independent of F1. Expected tractable.
211+
| *PASSED 2026-05-18* — `proofs/agda/EchoPullbackUnivF4.agda`,
212+
`--safe --without-K`, zero postulates, pointwise corollary kept,
213+
wired into `All`/`Smoke`. Retraction follow-up F-2026-05-18a.
210214

211215
| B
212216
| Buchholz order: `Ordinal/Buchholz/Order.agda` `_<ᵇ_` compares ψ by
@@ -254,10 +258,12 @@ single index; it moves no claim.
254258

255259
=== Recommended order of attack
256260

257-
. *F4 + F2 in parallel* (A4, A2) — tractable, independent of F1, each
258-
earns back a qualified/real claim regardless of F1. Highest ROI.
261+
. *F4 + F2 in parallel* (A4, A2) — *DONE 2026-05-18*: both passed,
262+
spikes wired into `All`/`Smoke`, scoped claims moved (follow-up
263+
F-2026-05-18a). Each earned back a qualified/real claim
264+
independently of F1.
259265
. *F1 coassoc* (A1) — one obligation, feasibility decided; closes the
260-
make-or-break and unlocks *F3* (A3).
266+
make-or-break and unlocks *F3* (A3). Now the next action.
261267
. *Doc-integrity* (D) — reconcile alongside step 1; removes a drift
262268
vector at near-zero cost.
263269
. *Buchholz* (B) — separate long-tail; keep the `ExtendedOrder`
@@ -294,3 +300,15 @@ single index; it moves no claim.
294300
obligation — *not postulated, not softened*. No reframed claim has
295301
moved (F1 requires all three laws); the gate stays open until
296302
`gc-coassoc` closes `--safe --without-K` zero-postulate.
303+
* *2026-05-18 — Gates F4 and F2 PASSED.*
304+
`EchoPullbackUnivF4.agda` (F4: terminal-cone UP as a function of an
305+
explicit `funext` parameter, never a postulate; pointwise corollary
306+
kept) and `EchoStepNDModelF2.agda` (F2: genuine second model of the
307+
bare Echo functor on the non-graph relation `StepND`, content-bearing
308+
agreement). Both `--safe --without-K`, zero postulates; wired into
309+
`All.agda` and pinned in `Smoke.agda`; full + smoke build green.
310+
Scoped claims moved in `paper.adoc` / `conservativity.adoc` /
311+
`types-abstract.adoc`; logged as retraction follow-up F-2026-05-18a.
312+
*Strictly scoped:* F2 is the Echo functor only — the graded-comonad,
313+
model-independence, and conservativity claims remain retracted; F1
314+
(coassoc) and F3 remain open.

docs/echo-types/paper.adoc

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,22 @@ category theorist accepts echo as the limit of a cospan" were
152152
retracted on 2026-05-18 (see <<reframing-note>>).
153153
====
154154

155+
[NOTE]
156+
====
157+
*Earned back, conditionally (Gate F4, 2026-05-18).*
158+
`proofs/agda/EchoPullbackUnivF4.agda` discharges strict terminality
159+
`m' ≡ m` as a *function of an explicit `funext` hypothesis* — a
160+
module parameter `FunExt₀`, **not a postulate**, in the same idiom by
161+
which `Echo.agda` parameterises `cancel-iso` by the triangle
162+
identities. The honest reading is therefore not "retracted →
163+
unconditional" but "retracted → *true, conditional on funext*": a
164+
category theorist who accepts funext gets the genuine universal
165+
property; the trusted base is unchanged (no funext is introduced),
166+
and the funext-free pointwise mediator above is retained verbatim as
167+
the corollary. The *unconditional* claim stays retracted. Logged as
168+
retraction follow-up F-2026-05-18a.
169+
====
170+
155171
== The loss-graded reindexing modality
156172

157173
=== Structure
@@ -249,6 +265,25 @@ the "graph = fibration bridge" `bridge-natural` is the identity on
249265
Σ-pairs (`refl`). We no longer claim a relational model of the
250266
modality.
251267

268+
[NOTE]
269+
====
270+
*Earned back, scoped (Gate F2, 2026-05-18).*
271+
`proofs/agda/EchoStepNDModelF2.agda` gives a genuine second model of
272+
the *bare Echo functor* (explicitly **not** of the graded modality —
273+
that retraction stands). It instantiates the same interface the
274+
deterministic model uses (`EchoFunctorModel`; functor laws by the
275+
generic `map-rel-id`/`map-rel-comp`) at `EchoRelational.StepND`, a
276+
relation that is **not the graph of any function under any state
277+
relabelling** — `nd-not-graph`, a checked `true ≢ false`. The
278+
agreement carries content: the `StepND` fibre is the disjoint sum of
279+
its deterministic branches by constructor case analysis
280+
(`nd-sum-fromto`, `nd-fibre-not-prop`), *not* `refl` and *not* Σ-η on
281+
`× ⊤` — exactly the defect §6 records for `EchoRelModel`. This earns
282+
back the R2 "fixable with bounded work" item at functor level only;
283+
model-independence of the *modality* remains retracted. Logged as
284+
retraction follow-up F-2026-05-18a.
285+
====
286+
252287
=== The conservativity claim, narrowed
253288

254289
Because `Echo = Σ` definitionally and the whole development is
@@ -346,6 +381,17 @@ following claims were retracted, not weakened cosmetically:
346381
The full per-attack analysis and the codebase pressure-test are in
347382
`docs/retractions.adoc`.
348383

384+
*Partial earn-back (follow-up F-2026-05-18a, 2026-05-18).* Two rows
385+
above are now partially recovered, each strictly to its mechanised
386+
strength under the Pillar F gate discipline
387+
(`docs/echo-types/earn-back-plan.adoc`): the universal-property row is
388+
earned back *conditional on an explicit `funext` parameter* (never a
389+
postulate; §3 NOTE, `EchoPullbackUnivF4.agda`), and the
390+
model-independence row is earned back *for the bare Echo functor only*
391+
via a genuine non-graph `StepND` model (§6 NOTE,
392+
`EchoStepNDModelF2.agda`). The graded-comonad, modality-level
393+
model-independence, and conservativity rows remain fully retracted.
394+
349395
== Conclusion
350396

351397
Echo is the homotopy fibre equipped with a loss-grade lattice,

docs/echo-types/types-abstract.adoc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ which this abstract's own correction is an instance.
6969
`∀ v → m' v ≡ m v`. This is *not* a universal property: full
7070
terminality (`m' ≡ m`) is neither stated nor provable here without
7171
funext. The honest claim is a funext-relative mediator property.
72+
*Earned back conditionally (F4, F-2026-05-18a):* strict terminality
73+
is mechanised as a function of an explicit `funext` parameter
74+
(`EchoPullbackUnivF4.agda`, not a postulate); the unconditional
75+
claim stays retracted, the pointwise corollary is kept.
7276
. *Loss-graded reindexing modality (Pillar B-2).* Over the loss-grade
7377
join-semilattice `(Grade, ⊔, keep)`: `gextract` is the identity
7478
coercion (`keep` is the definitional bottom), `gduplicate` is the
@@ -100,6 +104,11 @@ definitionally.
100104
`--safe --without-K` build is *evidence for* conservativity over
101105
MLTT+Σ; it is not a mechanised conservativity metatheorem and is no
102106
longer claimed as one.
107+
*Earned back, scoped (F2, F-2026-05-18a):* a genuine second model of
108+
the *bare Echo functor* (not the modality) exists on the non-graph
109+
relation `StepND` (`EchoStepNDModelF2.agda`; `nd-not-graph` checked),
110+
with content-bearing agreement — not Σ-η on `× ⊤`. Modality-level
111+
model-independence and the conservativity narrowing are unchanged.
103112

104113
== The artefact and its discipline
105114

docs/retractions.adoc

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,59 @@ integration narrowness; R-2026-05-18 concerns the graded-comonad /
139139
model-independence / conservativity framing. Both are calibration
140140
retractions, not invalidations of the mechanised artefacts.
141141

142+
==== Follow-up F-2026-05-18a (2026-05-18) — Gates F4 and F2 passed
143+
144+
Two of the R-2026-05-18 retractions are partially *earned back*, each
145+
strictly to its mechanised strength, under the Pillar F gate
146+
discipline (`docs/echo-types/earn-back-plan.adoc`). Both spikes
147+
typecheck `--safe --without-K` with *zero postulates*, are now wired
148+
into `proofs/agda/All.agda`, and pinned in `proofs/agda/Smoke.agda`.
149+
The full suite and smoke build green with them included.
150+
151+
[cols="1,4", options="header"]
152+
|===
153+
| Gate | Earned-back claim (exact strength — nothing beyond)
154+
155+
| *F4*
156+
| `proofs/agda/EchoPullbackUnivF4.agda`. The terminal-cone universal
157+
property `m' ≡ m` holds *as a function of an explicit `funext`
158+
hypothesis* — a module parameter `FunExt₀`, **never a postulate**,
159+
the same idiom by which `Echo.agda` parameterises `cancel-iso` by
160+
the triangle identities. The retraction stands for the
161+
*unconditional* claim; what is earned is the *conditional* one
162+
("retracted → true, conditional"). The funext-free pointwise
163+
mediator property is retained verbatim as the corollary
164+
(`echo-pullback-univ-pointwise`). No funext is introduced into the
165+
trusted base.
166+
167+
| *F2*
168+
| `proofs/agda/EchoStepNDModelF2.agda`. A genuine second model of the
169+
*bare Echo functor* on `EchoRelational.StepND` — a relation that is
170+
provably **not the graph of any function under any state
171+
relabelling** (`nd-not-graph`, a checked `true ≢ false`). It
172+
inhabits the *same* interface the deterministic model does
173+
(`EchoFunctorModel`; functor laws by the generic
174+
`map-rel-id`/`map-rel-comp`), and the agreement has content — the
175+
`StepND` fibre is the disjoint sum of its deterministic branches by
176+
constructor case analysis (`nd-sum-fromto`/`nd-fibre-not-prop`),
177+
*not* `refl` and *not* Σ-η on `× ⊤`. This addresses precisely the
178+
R2 item rated "fixable with bounded work".
179+
|===
180+
181+
*What is NOT earned back by this follow-up.* The graded-comonad claim
182+
(no nested `D_r D_s`), model-independence of the *graded* structure,
183+
and the conservativity metatheorem remain fully retracted. F2 concerns
184+
the Echo functor only, not the comonad; it does not reinstate
185+
`EchoRelModel`'s retracted "second model"/"model-independence". Gates
186+
F1 (coassociativity open) and F3 (gated on F1) remain open.
187+
188+
*Artefacts edited 2026-05-18 pursuant to this follow-up:*
189+
`docs/echo-types/paper.adoc` (pullback §, second-model §, reframing
190+
note), `docs/echo-types/conservativity.adoc` (scope), and
191+
`docs/echo-types/types-abstract.adoc` (contributions) — each updated
192+
to the *conditional/scoped* earned claim, never beyond it;
193+
`docs/echo-types/earn-back-plan.adoc` ledger rows A2/A4 and Status.
194+
142195
== Revision policy
143196

144197
Append-only. New retractions get the next `R-YYYY-MM-DD` id. An entry

proofs/agda/All.agda

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ open import EchoGradedComonad -- Pillar B (scaffold)
4040
open import EchoSeparating -- Pillar C (scaffold)
4141
open import EchoRelModel -- Pillar D (scaffold)
4242

43+
-- Pillar F earn-back (docs/echo-types/earn-back-plan.adoc). Wired in
44+
-- on the gate passing (Sequencing pt 4); see docs/retractions.adoc
45+
-- follow-up F-2026-05-18a.
46+
open import EchoPullbackUnivF4 -- Gate F4 PASSED (funext-qualified UP)
47+
open import EchoStepNDModelF2 -- Gate F2 PASSED (StepND second model)
48+
4349
open import Ordinal.Base
4450
open import Ordinal.Closure
4551
open import Ordinal.CNF
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
{-# OPTIONS --safe --without-K #-}
2+
3+
-- Gate F4 feasibility spike (docs/echo-types/earn-back-plan.adoc §"Gate
4+
-- F4 — Universal property, honestly qualified").
5+
--
6+
-- The R-2026-05-18 retraction narrowed `EchoPullback.echo-pullback-univ`
7+
-- to a *pointwise* mediator property (`∀ v → m' v ≡ m v`); the
8+
-- terminal-cone universal property `m' ≡ m` was unstatable there
9+
-- without funext, and a funext postulate is forbidden estate-wide.
10+
--
11+
-- F4's earn-back is NOT "retracted → unconditional"; it is
12+
-- "retracted → *true, conditional*": parameterise the strict
13+
-- terminality result by an EXPLICIT funext hypothesis (a module
14+
-- parameter — never a postulate), exactly as `Echo.agda` parameterises
15+
-- `cancel-iso-from-to` / `cancel-iso-to-from` by the triangle-identity
16+
-- coherences. Then `echo-pullback-univ-strict` is a genuine universal
17+
-- property *given funext*, with zero postulates retained, and the
18+
-- unconditional pointwise result stays as the funext-free corollary.
19+
--
20+
-- Result of the spike: it closes in three lines on top of the
21+
-- already-landed pointwise lemma. No K, no funext in the trusted
22+
-- base (funext is a hypothesis the caller must supply, exactly like
23+
-- `triangle₁`/`triangle₂` in `Echo.agda`), zero postulates. Not wired
24+
-- into `All.agda` / `Smoke.agda` until Gate F4 is recorded passed.
25+
26+
module EchoPullbackUnivF4 where
27+
28+
open import Echo using (Echo)
29+
open import EchoPullback using (EchoCone; IsMediator; echo-pullback-univ)
30+
open import Data.Product.Base using (Σ; _,_; _×_; proj₁; proj₂)
31+
open import Relation.Binary.PropositionalEquality using (_≡_)
32+
33+
----------------------------------------------------------------------
34+
-- The funext hypothesis, as an explicit (level-0) coherence — NOT a
35+
-- postulate. `Set₁` because it quantifies over `Set`; this is exactly
36+
-- the universe `EchoPullback` lives at (`{A B : Set}`, `V : Set`,
37+
-- `Echo f y : Set`), so no `Setω` and no extra level machinery.
38+
39+
FunExt₀ : Set₁
40+
FunExt₀ =
41+
{A : Set} {B : A Set} {f g : (x : A) B x}
42+
( x f x ≡ g x) f ≡ g
43+
44+
----------------------------------------------------------------------
45+
-- Strict terminality, parameterised by funext.
46+
--
47+
-- `echo-cone` is the terminal cone *strictly*: every cone morphism is
48+
-- equal — as a function — to the mediator, not merely pointwise. The
49+
-- proof is one application of the supplied `funext` to the pointwise
50+
-- uniqueness already proved (funext-free, K-free) in
51+
-- `EchoPullback.echo-pullback-univ`.
52+
53+
module _ (funext : FunExt₀) where
54+
55+
echo-pullback-univ-strict :
56+
{A B : Set} (f : A B) (y : B) {V : Set} (c : EchoCone f y V)
57+
Σ (V Echo f y) (λ m
58+
IsMediator f y c m
59+
× ( (m' : V Echo f y) IsMediator f y c m' m' ≡ m))
60+
echo-pullback-univ-strict f y c with echo-pullback-univ f y c
61+
... | m , med , uniq-pt =
62+
m , med , λ m' med' funext (uniq-pt m' med')
63+
64+
----------------------------------------------------------------------
65+
-- The funext-free corollary is kept verbatim: it is exactly
66+
-- `EchoPullback.echo-pullback-univ`, re-exported here so the
67+
-- conditional/unconditional pair lives in one place. Reading:
68+
--
69+
-- * unconditional, zero hypotheses : pointwise mediator property
70+
-- (`echo-pullback-univ` — `∀ v → m' v ≡ m v`);
71+
-- * conditional on `funext` : strict terminal cone
72+
-- (`echo-pullback-univ-strict` — `m' ≡ m`).
73+
--
74+
-- No claim is upgraded beyond what its hypothesis license: the strict
75+
-- form is *true given funext*, stated as such.
76+
77+
echo-pullback-univ-pointwise :
78+
{A B : Set} (f : A B) (y : B) {V : Set} (c : EchoCone f y V)
79+
Σ (V Echo f y) (λ m
80+
IsMediator f y c m
81+
× ( (m' : V Echo f y) IsMediator f y c m'
82+
v m' v ≡ m v))
83+
echo-pullback-univ-pointwise = echo-pullback-univ

0 commit comments

Comments
 (0)