Skip to content

Commit 0a8ae26

Browse files
hyperpolymathclaude
andcommitted
docs: rule out 2-categorical shape; credit landed EchoApprox + EchoDecidable in roadmap
Doc-only sweep on the echo-types theory tree. Four pieces: 1. New closure note `docs/echo-types/decisions/no-2-cat.adoc` — verdict / evidence / implication for the roadmap entry "2-categorical shape: commit or rule out". Every would-be 2-cell in the landed code is `refl` or forced trivial by propositionality (`≤g-prop`, `⊑-prop`, `Echo-comp-iso` round- trips, pentagon projections, `SliceHom`↔cone, `bridge-natural`). The question is closed; future composition write-ups need not hedge for a 2-cat refinement. 2. `docs/echo-types/roadmap.md` — Axis 2 entry promoted from `[unblocked]` to `[landed]` crediting `EchoApprox.agda` (ε-fibre over `Tolerance` + `PseudoMetric` with three headline lemmas); Axis 8 entry lists three remaining candidates (not four — decidability-respecting has shipped as `EchoDecidable.agda`); 2-categorical-shape entry replaced with `[ruled out — see decisions/no-2-cat.adoc]`. 3. `docs/echo-types/composition.md` — §Q1 closed as rule-out pointing to the decisions note; §Q4 "evidence" language strengthened to "definitive characterisation"; §Q6 hedge "expressible as a 2-cell in the hypothetical 2-category" reformulated as a 1-categorical slice-morphism / fibration- section question. 4. `docs/echo-types/establishment-plan.adoc` + paper.adoc — minimal cross-references only (one-line note under the H2 verdict, NOTE placeholder under the Related work [EXPAND]). No spine rewrites. paper.adoc 2-cat-related [EXPAND] tags addressed; non-2-cat [EXPAND] tags untouched (own campaign). Verification: `git diff --stat` shows only doc files; no .agda touched. asciidoctor not available locally, so render check deferred — adoc syntax inspected by hand. Refs roadmap entries; does not Close any GitHub issue. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 482c7a9 commit 0a8ae26

5 files changed

Lines changed: 199 additions & 27 deletions

File tree

docs/echo-types/composition.md

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -113,16 +113,20 @@ composition *accumulates* witnesses rather than losing them.
113113

114114
## Open questions
115115

116-
### Q1. 2-categorical structure
117-
118-
*Question.* Is there a 2-category whose objects are types, whose
119-
1-morphisms are maps, and whose 2-morphisms are echo-preserving
120-
transformations? `EchoCategorical.agda` hints at this but does not
121-
commit to a full 2-categorical axiomatisation.
122-
123-
*Why it matters.* If yes, the composition laws are the coherence
124-
laws of the 2-category. If no, the composition laws are ad-hoc and
125-
probably a sign the residue structure is subtler than we modelled.
116+
### Q1. 2-categorical structure — closed (rule-out)
117+
118+
*Verdict.* No 2-category. The five structurally plausible
119+
organisations (echo as a lax/oplax 2-functor; slice-of-echos
120+
with `IsMediator` cells; double category; graded bicomonad;
121+
Grothendieck stack) each collapse to existing 1-cat +
122+
graded-comonad + pullback content because every would-be 2-cell
123+
appears as `refl` or is prop-forced trivial by `≤g-prop` /
124+
`⊑-prop`. The composition laws (accumulation iso, cancel-iso,
125+
pentagon Σ-assoc, decoration commuting) are *not* 2-coherence
126+
laws of a hypothesised 2-category — they are the 1-categorical
127+
composition laws of a pullback-presented type, full stop. See
128+
`docs/echo-types/decisions/no-2-cat.adoc` for the full closure
129+
note (verdict / evidence / implication).
126130

127131
### Q2. Negative echoes
128132

@@ -175,14 +179,18 @@ packaged as a stdlib `Function.Bundles._↔_` via
175179
once `g b ≡ c` has been pinned, so this is a strict iso inside
176180
`--safe --without-K`.
177181

178-
*Evidence this is the right shape.* Both lemmas land as `refl`
182+
*Confirmed this is the right shape.* Both lemmas land as `refl`
179183
without any `trans-assoc` / `cong-trans` manipulation, because
180184
`Echo-comp-iso-to`'s body `(x , p) ↦ (f x , (x , refl) , p)` is
181185
structurally symmetric in the outer function — the f-component
182186
and witness do not depend on which outer is peeled off. If the
183187
iso had a `trans`-shaped body instead, pentagon would have
184-
required real coherence lemmas; the `refl` outcome is evidence
185-
the iso has the right design.
188+
required real coherence lemmas. The `refl` outcome is the
189+
*definitive characterisation*: pentagon is identity — what would
190+
be the bicategorical associator-2-cell — and is forced trivial
191+
here. With the 2-cat shape ruled out (§Q1;
192+
`decisions/no-2-cat.adoc`), this is no longer "evidence the iso
193+
has the right design" but the 1-categorical-final reading of it.
186194

187195
### Q5. Interaction with role-indexing, gradings, linearity
188196

@@ -204,8 +212,14 @@ preimage `x` and re-applies `f` to reconstruct `y` — the echo is
204212
temporarily made definite. Does the composition law respect this
205213
extraction?
206214

207-
*Formalisation hint.* Probably expressible as a 2-cell in the
208-
hypothetical 2-category of Q1. Not attempted.
215+
*Formalisation hint (revised).* With the 2-cat shape ruled out
216+
(§Q1; `decisions/no-2-cat.adoc`), recovery is a 1-categorical
217+
notion: a slice morphism into `Echo f y` (the extraction step)
218+
followed by the canonical projection, or equivalently a section
219+
of the appropriate fibration. The earlier "expressible as a
220+
2-cell in the hypothetical 2-category of Q1" hedge no longer
221+
applies. Not attempted; now write-up-tractable on a 1-categorical
222+
footing.
209223

210224
---
211225

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
= D-2026-05-20 — Echo has no 2-categorical shape (rule-out)
2+
:toc: macro
3+
:toclevels: 2
4+
:sectnums:
5+
:sectnumlevels: 2
6+
:icons: font
7+
8+
[.lead]
9+
Closure note for the `roadmap.md` entry
10+
"2-categorical shape: commit to a 2-category or rule it out"
11+
and for `composition.md` §Q1 / §Q6. The verdict is *rule out*,
12+
on argued grounds against the landed Pillars A–D evidence. The
13+
question is closed; future composition write-ups need not hedge
14+
for a 2-cat refinement.
15+
16+
toc::[]
17+
18+
== Verdict
19+
20+
Echo's composition / graded-comonad / pullback machinery is
21+
provably *strict-1-categorical-with-a-thin-graded-fragment*. No
22+
2-categorical overlay yields a *statable theorem* the existing
23+
1-cat + graded-comonad + pullback content does not already
24+
encode at strength equal to or greater than what 2-cells could
25+
witness. The five structurally plausible 2-cat organisations
26+
(echo as a lax/oplax 2-functor; slice-of-echos with `IsMediator`
27+
as 2-cells; double category with `SliceHom` horizontals + cones
28+
verticals; graded bicomonad; Grothendieck stack of cartesian
29+
sections) all collapse to existing 1-cat content because every
30+
would-be 2-cell appears as `refl` or is forced trivial by a
31+
propositionality hypothesis.
32+
33+
== Evidence (from the landed development)
34+
35+
The "2-cat smells" in the codebase, each resolving trivially:
36+
37+
* *Pentagon Σ-assoc iso* (`Echo.agda` L243–L310). The prototypical
38+
bicategorical associator-2-cell. `Echo-comp-iso-pent-B` and
39+
`-pent-echo` both close by `refl` on both projections — the
40+
would-be associator is identity. Strictly 1-categorical.
41+
* *`Echo-comp-iso` round-trips* (`Echo.agda` L83–L94). Both
42+
`refl`. Strict iso, not pseudo; no unitor data.
43+
* *`SliceHom` ↔ `EchoCone`* (`EchoPullback.agda` L73–L92). Both
44+
round-trips `refl`. A cone *is* a slice morphism by record η —
45+
the data is identical; no mediating 2-cell exists.
46+
* *`echo-pullback-univ`* (`EchoPullback.agda` L55–L134).
47+
Uniqueness is *pointwise* (`∀ v → m' v ≡ m v`) — the
48+
1-categorical statement minus funext, *not* the 2-cell
49+
statement. `IsMediator.coherent` is Σ-second-coherence over
50+
the `factor` equation: HoTT pullback-as-Σ shape, not a 2-cell.
51+
* *`bridge-natural`* (`EchoRelModel.agda` L245–L250). The one
52+
real naturality in the suite — `echo-to-graph` between
53+
`map-over` and `map-rel` under `relmap-of`. In a 2-cat reading
54+
it would be a 2-cell `map-over ⇒ map-rel`; it closes by
55+
`refl`. Identity 2-cell; naturality on the nose.
56+
* *`≤g-prop`* (`EchoGraded.agda` L83–L89). The grade order is
57+
propositional: each hom-set is a singleton. In 2-cat language,
58+
thin / locally discrete; the graded category enriched in
59+
`Prop` *is* a 1-category.
60+
* *`⊑-prop`* (`EchoRelModel.GradedLossModel`). The interface
61+
bakes in propositionality of the loss order. Every instance
62+
is thin by signature.
63+
* *`gcomonad-coassoc`* (`EchoGradedComonad.agda` L126–L150). In
64+
a bicomonad, coassoc holds up to an associator 2-cell. Here,
65+
on the nose: the common-upper-bound idiom pre-empts the
66+
associator (`subst GEcho (⊔g-assoc …)` vanishes because both
67+
sides land in the *same* `GEcho g`). The would-be associator
68+
is replaced by `≤g-prop`.
69+
* *`EchoRelModel.GCLaws`*. Model independence proves the comonad
70+
laws from `⊑-prop` + composing `reindex` alone; the laws
71+
already hold *strictly* in both shipped models. No
72+
2-cell-equipped interface is needed.
73+
74+
Every place a 2-cell could appear, it appears as `refl` or is
75+
forced trivial by a propositionality hypothesis.
76+
77+
== Implication
78+
79+
* `composition.md` §Q1 is closed (rule-out). The composition
80+
laws (accumulation iso, cancel-iso, pentagon Σ-assoc,
81+
decoration commuting) are promoted from "ad-hoc candidates" to
82+
*the complete 1-categorical story* — not 2-coherence laws of a
83+
hypothesised 2-category, but the 1-categorical composition
84+
laws of a pullback-presented type, full stop.
85+
* `composition.md` §Q6 (composition in the presence of recovery /
86+
echo-erasure) reformulates as a 1-categorical question:
87+
recovery as a slice morphism or a fibration section, not a
88+
2-cell. Write-up-tractable on this footing.
89+
* `composition.md` §Q4's "Evidence this is the right shape"
90+
upgrades to a *characterisation*: pentagon is `refl` because
91+
there is no associator 2-cell to obstruct it.
92+
* The `EchoGradedComonad` + `EchoRelModel` package is the
93+
1-categorical graded-comonad story, not a thin slice toward a
94+
bicomonad. The paper draft (`paper.adoc`) need not hedge for
95+
a future 2-categorical refinement.
96+
97+
== What would force a reopen (not on the roadmap)
98+
99+
* `MapOver`-up-to-2-cell quantification by a downstream
100+
consumer (e.g. ordinal-track collapsing layer needing two
101+
`MapOver`s equal up to a 2-cell rather than definitionally).
102+
Current decoration families (`EchoApprox`, `EchoChoreo`,
103+
`EchoEpistemic`) do not exhibit this.
104+
* A future grade dropping `≤g-prop` (non-propositional grade
105+
lattice carrying genuine semilattice data with non-trivial
106+
isos). `EchoSeparating` already shows the characteristic law
107+
breaks in that regime — the moment a pseudo / 2-categorical
108+
layer becomes content-bearing. Not currently in play.
109+
* A future third model needing a non-trivial intertwining iso
110+
(`model-agreement` currently closes on `refl`).
111+
* Cubical / HoTT migration (out of `--without-K`) repromoting
112+
strict equalities to genuine paths. Out of scope.
113+
114+
None is on the active roadmap. The verdict stands.
115+
116+
== Cross-references
117+
118+
* `docs/echo-types/roadmap.md` — Theory-work entry updated to
119+
`[ruled out]`.
120+
* `docs/echo-types/composition.md` §Q1 / §Q4 / §Q6 — open
121+
framings folded into this closure.
122+
* `docs/echo-types/establishment-plan.adoc` — minimal
123+
cross-reference at the H2 verdict / guardrails site.
124+
* `docs/echo-types/paper.adoc` — related-work `[EXPAND]`
125+
carries a placeholder note pointing here.

docs/echo-types/establishment-plan.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,12 @@ rewrite *was* required and has been done (`paper.adoc`,
288288
`conservativity.adoc`, `types-abstract.adoc`, R-2026-05-18). The
289289
narrowed thesis (<<thesis>>) is what stands.
290290

291+
NOTE: A 2-categorical refinement of this picture was considered as
292+
a roadmap-level alternative and *ruled out* on the same evidence
293+
(every would-be 2-cell appears as `refl` or is prop-forced trivial
294+
by `≤g-prop` / `⊑-prop`). → ruled out, see
295+
`decisions/no-2-cat.adoc`.
296+
291297
== Status
292298

293299
[cols="1,4,1", options="header"]

docs/echo-types/paper.adoc

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -339,9 +339,20 @@ NOTE: *[EXPAND]* — detailed positioning against: Granule / QTT graded
339339
modalities; comonadic notions of computation (Uustalu–Vene);
340340
coeffects (Petriček–Orchard–Mycroft); HoTT fibrewise constructions;
341341
lens / optic literature (the witness-transport leg of
342-
`echo-pullback-univ` resembles the very-well-behaved-lens laws). Make
343-
the novelty crisp: not a new object, but a fully mechanised
344-
characterisation package with a falsifiable-gate methodology.
342+
`echo-pullback-univ` resembles the very-well-behaved *1-lens* laws —
343+
no 2-cell-equipped optic, see below). Make the novelty crisp: not a
344+
new object, but a fully mechanised characterisation package with a
345+
falsifiable-gate methodology.
346+
347+
NOTE: *[2-cat ruled out, see `decisions/no-2-cat.adoc`]* — when the
348+
related-work pass expands the lens/optic comparison and the
349+
graded-modality positioning, fold in the 2-categorical rule-out: a
350+
"bicategorical echo" reading was considered and ruled out on the
351+
landed evidence (every would-be 2-cell appears as `refl` or is
352+
prop-forced trivial by `≤g-prop` / `⊑-prop`); the construction
353+
resembles a very-well-behaved *1-lens*, not a 2-cell-equipped optic.
354+
The closure note in `decisions/no-2-cat.adoc` is the load-bearing
355+
artifact; this paragraph should cite it rather than re-argue.
345356

346357
[#reframing-note]
347358
== Reframing note (2026-05-18)

docs/echo-types/roadmap.md

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,35 @@ Paths marked **[unblocked]** can proceed today. Paths marked
2525

2626
## Theory work — no proof assistant needed
2727

28-
- **[unblocked]** Axis 2 (approximate echoes): settle the formal
29-
definition before touching Agda. Draft in `taxonomy.md` and
30-
`composition.md`.
28+
- **[landed]** Axis 2 (approximate echoes): formal definition
29+
shipped as `proofs/agda/EchoApprox.agda` — an ε-fibre over a
30+
parametric `Tolerance` (ordered commutative monoid) and a
31+
`PseudoMetric`, with `EchoR ε f y = Σ A (λ x → dist (f x) y ≤
32+
ε)` plus the three headline lemmas `echo-approx-intro` (exact
33+
⇒ zero-ε), `echo-approx-relax` (monotone in ε), and
34+
`echo-approx-compose` (additive composition under a
35+
non-expansive outer leg). Note: the formal definition has been
36+
retro-documented from the landed module (follow-up doc PR in
37+
lane C tracks the `taxonomy.md` §Axis-2 write-up).
3138
- **[landed]** Axis 8 (information-theoretic vs computational
32-
access): promoted from the candidates list to a numbered axis;
33-
four candidate refinements of `Echo` (cost-indexed, graded access
34-
modality, decidability-respecting, witness-search abstract
35-
machine) are listed. Follow-up: pick one refinement and formalise.
39+
access): promoted from the candidates list to a numbered axis.
40+
*Three* remaining candidate refinements of `Echo`
41+
(cost-indexed, graded access modality, witness-search abstract
42+
machine); the *decidability-respecting* candidate has shipped
43+
as `proofs/agda/EchoDecidable.agda` (`EchoDec f y = Dec (Echo f
44+
y)` with six headline lemmas including `echo-dec-intro`,
45+
`echo-dec-fin`, `echo-dec-compose-iso`; see `taxonomy.md` §8).
46+
Follow-up: pick one of the remaining three refinements and
47+
formalise.
3648
- **[unblocked]** Negative / co-echoes: formulate `CoEcho(f)` and its
3749
relationship to `Echo(f)`. Possibly resolves the quantitative /
3850
structural tension hinted at by `EchoTropical`.
39-
- **[unblocked]** 2-categorical shape: commit to a 2-category or
40-
rule it out. Either answer unblocks the composition roadmap.
51+
- **[ruled out — see docs/echo-types/decisions/no-2-cat.adoc]**
52+
2-categorical shape. Every would-be 2-cell in the landed code
53+
is `refl` or forced trivial by propositionality (`≤g-prop`,
54+
`⊑-prop`, `Echo-comp-iso` round-trips, pentagon projections,
55+
`SliceHom`↔cone, `bridge-natural`); see
56+
`decisions/no-2-cat.adoc` for the full verdict.
4157
- **[unblocked]** Presentation-dependence sub-theory: examples 5, 9,
4258
10 cluster here; write up the common pattern.
4359
- **[unblocked]** Gate 1 adjacency refresh: the five existing

0 commit comments

Comments
 (0)