Skip to content

Commit 3ecbc66

Browse files
hyperpolymathclaude
andcommitted
docs: refresh composition + taxonomy + CLAUDE.md for landed rungs
Documentation sweep aligning prose with the code as of c5fb8a5. All claims verified against current source — no overclaim. composition.md: * §3 Pentagon: marked Landed (was Partial). Now records Echo-comp-pent-Σ-assoc-{to, from, from-to, to-from} as the full Σ-shape iso companion to the projection-level lemmas (-pent-B, -pent-echo). * §3 Tolerance: marked Landed (was Open). Realised as EchoApprox.Approx.echo-approx-compose over a parametric pseudo-metric. * §3 Decoration commuting: linear case marked Landed via EchoLinear.degradeMode-comp + degradeMode-id-{linear, affine} + degradeMode-strict-is-weaken. Indexed/role/modal still open. * §"Ranked open list": (3) pentagon coherence struck through (now landed at full Σ-shape, not just projections). taxonomy.md: * §8 axis-8 (computational access): EchoDecidable.agda named as the first formalised artifact; refinement 3 anchored to the new module; clarified that refinements 1/2/4 (cost-tracking, graded modality, abstract machine) remain unformalised because Agda's type system does not express complexity bounds without further machinery. CLAUDE.md: * "Current rung state" updated to record EchoLinear's per-decoration composition rung alongside EchoGraded; remaining open decorations (indexed / role / modal) reduced from 4 to 3. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent c5fb8a5 commit 3ecbc66

3 files changed

Lines changed: 84 additions & 34 deletions

File tree

CLAUDE.md

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,13 @@ work to `main` and refresh all documentation:
140140

141141
## Current rung state (2026-04-27)
142142

143-
Just landed: **Per-decoration composition rung** in `EchoGraded.agda`.
144-
The grade decoration commutes with composition. Headlines:
143+
Just landed: **Per-decoration composition rung** across
144+
`EchoGraded.agda` and `EchoLinear.agda`. Both decorations commute
145+
with composition under the same recipe (decoration order →
146+
propositionality → join → factoring-free compose → via-join
147+
restatement). Headlines:
148+
149+
`EchoGraded.agda`:
145150

146151
* `≤g-prop` — the order `_≤g_` is propositional (each (g1, g2) pair
147152
has at most one inhabitant). Six refl-clauses, one per constructor.
@@ -155,15 +160,29 @@ The grade decoration commutes with composition. Headlines:
155160
structure: `degrade p1 e ≡ degrade (≤g-⊔g-univ p1 p2) (degrade
156161
(≤g-⊔g-left g1 g2) e)`.
157162

158-
All five new headlines pinned in `Smoke.agda`. Verified post-rung:
159-
`agda proofs/agda/All.agda` and `agda proofs/agda/Smoke.agda` both
160-
exit 0 under `--safe --without-K`. No postulates introduced.
163+
`EchoLinear.agda` (linearity-side analogue, two-mode `linear ⊑
164+
affine` decoration):
165+
166+
* `_≤m_`, `≤m-trans` — mode order with three constructors
167+
(`linear≤linear`, `linear≤affine`, `affine≤affine`) and
168+
transitivity.
169+
* `degradeMode`, `degradeMode-comp` — id on reflexive cases,
170+
`weaken` on the strict step; composition closes `refl` on every
171+
reachable constructor pair.
172+
* `≤m-prop`, `_⊔m_`, `≤m-⊔m-{left, right, univ}` — propositional
173+
order plus join structure (with `affine` as top).
174+
* `degradeMode-compose`, `degradeMode-via-join` — mirror the
175+
`EchoGraded` factoring-free compose and via-join restatement.
176+
177+
All headlines pinned in `Smoke.agda`. `EchoLinear.agda` typechecks
178+
clean with no warnings or errors under `--safe --without-K`. No
179+
postulates introduced.
161180

162181
Open at this rung:
163182

164-
* Linear / indexed / role / modal cases of decoration-commuting
165-
(`EchoLinear`, `EchoIndexed`, `EchoChoreo`, `EchoEpistemic`).
166-
The grade case suggests the recipe in each: identify the
183+
* Indexed / role / modal cases of decoration-commuting
184+
(`EchoIndexed`, `EchoChoreo`, `EchoEpistemic`). The grade and
185+
linear cases suggest the recipe in each: identify the
167186
decoration's underlying order, prove it propositional, prove the
168187
existing `*-comp` lemma against it.
169188

docs/echo-types/composition.md

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -223,13 +223,20 @@ Collecting the above:
223223
`s-right`). Round-trips deferred pending a triangle-identity
224224
coherence or a stdlib `Function.Bundles.Inverse` shim.
225225

226-
4. **(Partial) Pentagon.** Three-fold composition associates at
227-
the projections. `Echo-comp-iso-pent-B` and
228-
`Echo-comp-iso-pent-echo` both `refl`; full Σ-shape iso still
229-
open.
230-
231-
5. **(Open) Tolerance calculus.** For approximate echoes, tolerances
232-
compose with a Lipschitz-like law.
226+
4. **(Landed) Pentagon.** Three-fold composition associates at
227+
the projections (`Echo-comp-iso-pent-B`, `Echo-comp-iso-pent-echo`,
228+
both `refl`) and at the full Σ shape
229+
(`Echo-comp-pent-Σ-assoc-{to, from, from-to, to-from}`). The two
230+
nested-Σ shapes differ only by Σ-associativity / unification of
231+
the intermediate base point; both round-trips reduce
232+
definitionally once `g b ≡ c` is pinned, so this is a strict iso
233+
inside `--safe --without-K`. All four iso components pinned in
234+
`Smoke.agda`.
235+
236+
5. **(Landed) Tolerance calculus.** For approximate echoes,
237+
tolerances compose additively under a non-expansive outer leg.
238+
Realised as `EchoApprox.Approx.echo-approx-compose` over a
239+
parametric pseudo-metric.
233240

234241
6. **(Partial) Decoration commuting.** Role, grade, linearity, and
235242
modal decorations commute with composition under conditions to be
@@ -239,8 +246,12 @@ Collecting the above:
239246
corollary of `degrade-comp` and `≤g-prop` (the order is
240247
propositional). `degrade-via-join` restates this through the
241248
join structure `_⊔g_`, with `≤g-⊔g-left/right/univ` exhibiting
242-
`_⊔g_` as the categorical join. Linear / indexed / role / modal
243-
cases remain open.
249+
`_⊔g_` as the categorical join. The linear case is **landed** in
250+
`EchoLinear.agda` as `degradeMode-comp` along the mode order
251+
`linear ⊑ linear ⊑ affine ⊑ affine`; corollaries
252+
`degradeMode-id-{linear, affine}` and
253+
`degradeMode-strict-is-weaken` establish the relationship to the
254+
existing `weaken`. Indexed / role / modal cases remain open.
244255

245256
---
246257

@@ -253,24 +264,25 @@ Ranked by unblock-value. (1) and (2) landed; (3) onwards is open.
253264
2. ~~**Cancellation corollary.**~~ Partially landed as
254265
`cancel-iso-to` / `cancel-iso-from`; full iso deferred pending
255266
triangle-identity coherence (see §3 above).
256-
3. ~~**Pentagon coherence.**~~ Partially landed: the two
257-
projection-level pentagon lemmas (`-pent-B`, `-pent-echo`)
258-
ship as `refl`. The full Σ-associativity iso between the two
259-
nested shapes remains open.
267+
3. ~~**Pentagon coherence.**~~ Landed: projection-level
268+
(`-pent-B`, `-pent-echo` as `refl`) plus the full Σ-shape iso
269+
(`Echo-comp-pent-Σ-assoc-{to, from, from-to, to-from}`).
260270
4. **Full cancel-iso with round-trips.** Needs an equivalence
261271
record that packages `s-left`, `s-right`, and the triangle
262272
identity as three fields, or direct use of stdlib's
263273
`Function.Bundles.Inverse`. Then the round-trip refls go through.
264-
5. **Approximate-echo skeleton.** New module
265-
`EchoApprox.agda` defining ε-echoes and restating (1) in the
266-
approximate setting. This is where axis 2 of the taxonomy gets
267-
teeth.
274+
5. ~~**Approximate-echo skeleton.**~~ Landed in
275+
`EchoApprox.agda` with `EchoR ε f y`, `echo-approx-intro`,
276+
`echo-approx-relax`, and `echo-approx-compose` (additive under
277+
non-expansive outer leg).
268278
6. **Decoration commuting.** Per-decoration lemmas in the existing
269279
`EchoGraded`, `EchoLinear`, `EchoIndexed` modules. *Grade case
270280
landed*: `EchoGraded.degrade-compose` (per-decoration composition
271281
law) and `degrade-via-join` (its join-structured restatement),
272-
resting on `≤g-prop` and `degrade-comp`. Linear / indexed /
273-
role / modal still open.
282+
resting on `≤g-prop` and `degrade-comp`. *Linear case landed*:
283+
`EchoLinear.degradeMode-comp` along the mode order with
284+
`degradeMode-id-{linear, affine}` corollaries. Indexed / role /
285+
modal still open.
274286

275287
None of these depend on the blocked Buchholz-WF / shared-binder
276288
work. All are Sonnet-class proofs; (5) is Opus 4.7 design and

docs/echo-types/taxonomy.md

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,12 @@ intensional core, same proof relevance, etc.) and differ only in
210210
whether a witness is reachable by a feasible algorithm. The security
211211
of every modern cryptosystem depends on this axis being real.
212212

213-
*Agda anchor.* None directly — Agda's type system does not express
214-
complexity bounds, so computational access cannot be named at the
215-
type level in the current formalisation. Adjacent machinery in
216-
stdlib:
213+
*Agda anchor.* `EchoDecidable.agda` formalises refinement 3 below
214+
(decidability-respecting echo) as the first axis-8 artifact under
215+
`--safe --without-K`. Full cost-tracking refinements (1, 2, 4) are
216+
not yet formalised — Agda's type system does not express complexity
217+
bounds, so asymptotic computational access cannot be named at the
218+
type level without further machinery. Adjacent stdlib pieces:
217219
- `Data.Nat.Logarithm.⌊log₂⌋` and arithmetic complexity conventions
218220
admit informal-level statements like "this function runs in `O(n
219221
log n)`", but without a cost monad.
@@ -233,10 +235,25 @@ stdlib:
233235
host; the grade would need a complexity-class interpretation
234236
(e.g. polynomial vs super-polynomial).
235237

236-
3. **Decidability-respecting echo.** `Echo⁺ f y = Dec (Echo f y)`
238+
3. **Decidability-respecting echo.** `EchoDec f y = Dec (Echo f y)`
237239
pairs the echo with a *constructive decision procedure*. Weaker
238240
than full cost-tracking but enough to distinguish "feasibly
239-
decidable" from "mathematically inhabited".
241+
decidable" from "mathematically inhabited". **Formalised** in
242+
`proofs/agda/EchoDecidable.agda` as the first axis-8 artifact.
243+
244+
*Refinement choice (chosen first formalisation target).*
245+
Refinement 3 is the right starting point under `--safe --without-K`.
246+
It is the only one of the four candidates that lives entirely inside
247+
the existing type theory: no resource monad, no graded semiring with
248+
a complexity-class interpretation, no abstract machine. `Dec` is
249+
already in the standard library, and the gap between `Echo f y`
250+
(inhabited) and `Dec (Echo f y)` (constructively decided) is
251+
exactly the gap axis 8 names. Formalising 3 first lets the heavier
252+
refinements (1, 2, 4) be added later as orthogonal layers, each
253+
projecting to the decidability-respecting echo by forgetting cost
254+
information. Realised in `EchoDecidable.agda` with headline lemmas
255+
`echo-dec-intro`, `echo-dec-pull-yes`, `echo-dec-respect-≡`,
256+
`echo-dec-fin`, `echo-dec-compose-with-search`.
240257

241258
4. **Witness-search abstract machine.** Model the extractor as a
242259
term in a bounded-step abstract machine and pair it with the
@@ -245,7 +262,9 @@ stdlib:
245262
*Open question.* Is there a single refinement that subsumes all four?
246263
My guess is no: (1) and (4) track asymptotic cost, (2) and (3)
247264
track discrete feasibility classes. They probably live on a small
248-
lattice of access-tracking theories.
265+
lattice of access-tracking theories. Concretely, refinement 3 (now
266+
formalised) gives the bottom of the lattice: every other refinement
267+
projects down to it by erasing cost data.
249268

250269
*Composition conjecture.* Computational accessibility composes
251270
**multiplicatively** along `g ∘ f` in the canonical case — the

0 commit comments

Comments
 (0)