Skip to content

Commit db2cb08

Browse files
hyperpolymathclaude
andcommitted
earn-back: Gates F4 + F2 PASSED (retraction follow-up F-2026-05-18a)
F4 — EchoPullbackUnivF4.agda: strict terminal-cone universal property m' ≡ m as a function of an EXPLICIT funext module parameter (FunExt₀, never a postulate — the cancel-iso idiom). Pointwise mediator kept as the funext-free corollary. Unconditional claim stays retracted. F2 — EchoStepNDModelF2.agda: a genuine second model of the BARE Echo functor on EchoRelational.StepND, a relation 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 by 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 ×⊤). Scope: the Echo functor only — graded-comonad / modality-level model-independence / conservativity remain fully retracted. Both --safe --without-K, ZERO postulates; wired into All.agda, pinned in Smoke.agda; full + smoke build green. Scoped claims moved in paper.adoc (§3 NOTE, §6 NOTE, conclusion), conservativity.adoc (scope + revision history), types-abstract.adoc (contributions 2 & 5), earn-back-plan.adoc (ledger A2/A4 + Status); logged append-only as retraction follow-up F-2026-05-18a. F1 (coassoc) and F3 remain open. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 07632c6 commit db2cb08

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
@@ -193,7 +193,9 @@ single index; it moves no claim.
193193
| A2
194194
| *F2* — real second model of the bare Echo functor via
195195
`EchoRelational.StepND`, non-`refl` agreement lemma.
196-
| Unstarted. Independent of F1. Rated tractable.
196+
| *PASSED 2026-05-18* — `proofs/agda/EchoStepNDModelF2.agda`,
197+
`--safe --without-K`, zero postulates, wired into `All`/`Smoke`.
198+
Retraction follow-up F-2026-05-18a.
197199

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

208212
| B
209213
| Buchholz order: `Ordinal/Buchholz/Order.agda` `_<ᵇ_` compares ψ by
@@ -251,10 +255,12 @@ single index; it moves no claim.
251255

252256
=== Recommended order of attack
253257

254-
. *F4 + F2 in parallel* (A4, A2) — tractable, independent of F1, each
255-
earns back a qualified/real claim regardless of F1. Highest ROI.
258+
. *F4 + F2 in parallel* (A4, A2) — *DONE 2026-05-18*: both passed,
259+
spikes wired into `All`/`Smoke`, scoped claims moved (follow-up
260+
F-2026-05-18a). Each earned back a qualified/real claim
261+
independently of F1.
256262
. *F1 coassoc* (A1) — one obligation, feasibility decided; closes the
257-
make-or-break and unlocks *F3* (A3).
263+
make-or-break and unlocks *F3* (A3). Now the next action.
258264
. *Doc-integrity* (D) — reconcile alongside step 1; removes a drift
259265
vector at near-zero cost.
260266
. *Buchholz* (B) — separate long-tail; keep the `ExtendedOrder`
@@ -269,3 +275,15 @@ single index; it moves no claim.
269275
pragmas across all 88 modules; no hidden debt. No claim moved. F1
270276
feasibility spike is the immediate next action. No gate passed yet;
271277
no reframed claim has moved.
278+
* *2026-05-18 — Gates F4 and F2 PASSED.*
279+
`EchoPullbackUnivF4.agda` (F4: terminal-cone UP as a function of an
280+
explicit `funext` parameter, never a postulate; pointwise corollary
281+
kept) and `EchoStepNDModelF2.agda` (F2: genuine second model of the
282+
bare Echo functor on the non-graph relation `StepND`, content-bearing
283+
agreement). Both `--safe --without-K`, zero postulates; wired into
284+
`All.agda` and pinned in `Smoke.agda`; full + smoke build green.
285+
Scoped claims moved in `paper.adoc` / `conservativity.adoc` /
286+
`types-abstract.adoc`; logged as retraction follow-up F-2026-05-18a.
287+
*Strictly scoped:* F2 is the Echo functor only — the graded-comonad,
288+
model-independence, and conservativity claims remain retracted; F1
289+
(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)