Skip to content

Commit f9d6076

Browse files
committed
Add axis 8 (information-theoretic vs computational access)
Promotes the computational-access candidate from the "worth considering" section in taxonomy.md to a full numbered axis, with the same structural template used for axes 1-7 (definition, distinguishing test, forcing example, Agda anchor, candidate refinements, composition conjecture). The axis is motivated by the cryptographic-hash example (examples.md §8) which cannot be distinguished from a constructive square-root by any of axes 1-7: both have the same extensional shadow, intensional core, exactness, locality, canonicity, compositionality, static-ness, and proof-relevance. The only real distinction is whether a witness can be extracted in feasible resources — which axes 1-7 do not name. Four candidate refinements of `Echo` are listed for future formalisation, roughly in increasing weight: 1. Cost-indexed echo: pair Echo f y with a witness-extraction bound. 2. Graded access modality: Echo^c f y at grade c meaning "reachable within c steps"; natural host is EchoGraded.agda. 3. Decidability-respecting echo: Echo⁺ f y = Dec (Echo f y); separates mathematically-inhabited from feasibly-decidable. 4. Witness-search abstract machine: model the extractor as a term in a bounded-step machine. The four probably live on a small lattice of access-tracking theories rather than being subsumed by a single definition. Downstream updates in this commit: * examples.md §8 points to taxonomy.md axis 8 instead of treating the axis as a todo. * The cross-classification table in taxonomy.md adds an `Access` column; every current module is uniformly `Info` (information- theoretic only) with `EchoLinear` and `EchoGraded` marked `Info (proxy)` since their usage/grade semantics approximate cost-tracking without committing to an algorithmic interpretation. * The "Open: new axes" section in taxonomy.md has a history note explaining the promotion. * roadmap.md marks axis 8 [landed] and its immediate-ordering item now reads "pick one axis-8 refinement and formalise it". No code is changed. Theory-only update. https://claude.ai/code/session_01JRLz84fAaWvRBKyXuc4tyK
1 parent c8a0540 commit f9d6076

3 files changed

Lines changed: 135 additions & 27 deletions

File tree

docs/echo-types/examples.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -152,13 +152,13 @@ Template used for every entry:
152152
enormous but enumerable (in principle) set.
153153
- **Extensional / intensional.** Intensional at the set-theoretic
154154
level (every preimage exists), but the security claim is about
155-
*computational* access to the echo, not its existence. This
156-
distinction is not captured by the current `Echo f y` definition
157-
and is a genuine open question: what refinement of Echo Types
158-
encodes computational vs information-theoretic residue?
159-
- **Informal.** Not in repo. Serves as the worked example for the
160-
**computational-access axis** that the current taxonomy does not
161-
yet include.
155+
*computational* access to the echo, not its existence.
156+
- **Informal.** Not in repo. This is the example that forced the
157+
promotion of the information-theoretic/computational access
158+
axis — see `taxonomy.md` axis 8. Candidate refinements of `Echo`
159+
that would capture the security claim (cost-indexed echo, graded
160+
access modality, decidability-respecting echo, witness-search
161+
abstract machine) are listed there.
162162

163163
---
164164

docs/echo-types/roadmap.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@ Paths marked **[unblocked]** can proceed today. Paths marked
2121
- **[unblocked]** Axis 2 (approximate echoes): settle the formal
2222
definition before touching Agda. Draft in `taxonomy.md` and
2323
`composition.md`.
24-
- **[unblocked]** Axis 8 (computational-access): new taxonomy axis
25-
motivated by the cryptographic-hash example (examples §8). Write
26-
up separately.
24+
- **[landed]** Axis 8 (information-theoretic vs computational
25+
access): promoted from the candidates list to a numbered axis;
26+
four candidate refinements of `Echo` (cost-indexed, graded access
27+
modality, decidability-respecting, witness-search abstract
28+
machine) are listed. Follow-up: pick one refinement and formalise.
2729
- **[unblocked]** Negative / co-echoes: formulate `CoEcho(f)` and its
2830
relationship to `Echo(f)`. Possibly resolves the quantitative /
2931
structural tension hinted at by `EchoTropical`.
@@ -137,15 +139,18 @@ tractable today:
137139
Concrete, compiling, unblocks the composition roadmap.
138140
3. **Gate 1 adjacency refresh against the new taxonomy** — 1 day.
139141
Cheap coherence pass on existing docs.
140-
4. **Theory: write up computational-access axis** — 1 day.
141-
Fills a gap that the current taxonomy cannot capture.
142+
4. **Theory: pick one axis-8 refinement and formalise it** — 1–2
143+
days. Four candidates in `taxonomy.md` §8 (cost-indexed echo,
144+
graded access modality, decidability-respecting echo, witness-
145+
search abstract machine). Choosing commits the repo to one
146+
formal handle on computational vs information-theoretic access.
142147
5. **Agda: `EchoApprox.agda`** — 2–3 days. First artifact of axis 2.
143148
6. **Applications chapter: compiler-analysis residue** — 2 days.
144149
Largest reader value; entirely unblocked.
145150
7. **Per-decoration composition lemmas** — 1 day each. Useful
146151
coverage.
147152

148-
Steps 1–4 are ~4–5 days of honest work that require nothing from
153+
Steps 1–4 are ~5–6 days of honest work that require nothing from
149154
proof assistants, external repos, or the blocked Buchholz path.
150155
Steps 5–7 extend into Agda but depend only on infrastructure we
151156
already have in-suite.

docs/echo-types/taxonomy.md

Lines changed: 117 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -176,33 +176,130 @@ is load-bearing there.
176176

177177
---
178178

179+
## Axis 8 — Information-theoretic vs computational access
180+
181+
*Definition.* An echo is **information-theoretically accessible**
182+
when `Echo f y` is merely *inhabited* as a type — i.e. a witness
183+
`(x , p : f x ≡ y)` exists in the metatheory. An echo is
184+
**computationally accessible** when a concrete procedure produces
185+
such a witness in bounded resources given `y`. Information-theoretic
186+
accessibility is a property of the type; computational accessibility
187+
is a property of an accompanying algorithm.
188+
189+
*Distinguishing test.* Does the echo's usefulness collapse when we
190+
restrict to witness-extraction algorithms of a fixed complexity
191+
class?
192+
193+
*Example forcing the distinction.*
194+
- `H : {0,1}* → {0,1}ⁿ`, a cryptographically strong hash function.
195+
`Echo H y` is information-theoretically inhabited for every `y ∈
196+
image(H)` (pigeonhole — there exist preimages), but computationally
197+
inaccessible under the standard security assumption (no
198+
polynomial-time algorithm produces a witness). See `examples.md` §8.
199+
- `square⁻¹ : ℕ → ℕ` under the constructive square-root algorithm.
200+
Same information content as `Echo square`, but the witness is
201+
produced in `O(log n)` operations. Computationally accessible.
202+
203+
*Why it is a separate axis.* Axes 1–7 are properties of the echo
204+
type as a mathematical object — they do not depend on any notion of
205+
cost, algorithm, or resource. Axis 8 does. Two echoes can be
206+
identical on every other axis (same extensional shadow, same
207+
intensional core, same proof relevance, etc.) and differ only in
208+
whether a witness is reachable by a feasible algorithm. The security
209+
of every modern cryptosystem depends on this axis being real.
210+
211+
*Agda anchor.* None directly — Agda's type system does not express
212+
complexity bounds, so computational access cannot be named at the
213+
type level in the current formalisation. Adjacent machinery in
214+
stdlib:
215+
- `Data.Nat.Logarithm.⌊log₂⌋` and arithmetic complexity conventions
216+
admit informal-level statements like "this function runs in `O(n
217+
log n)`", but without a cost monad.
218+
- `EchoLinear.agda` and `EchoGraded.agda` restrict what one can *do*
219+
with witnesses via usage modes and grades. These are proxies for
220+
resource control, not full computational-access tracking.
221+
222+
*Candidate refinements of `Echo` that would capture this axis.*
223+
224+
1. **Cost-indexed echo.** Pair `Echo f y` with a witness-extraction
225+
bound: `CEcho f y cost = Σ (Echo f y) (λ _ → Extractor f y cost)`.
226+
Requires a resource monad or a cost-passing semantics.
227+
228+
2. **Graded access modality.** `Echo^c f y` at grade `c` means
229+
"witness is reachable with `≤ c` steps". A graded semiring on the
230+
cost indexes gives composition. `EchoGraded.agda` is the natural
231+
host; the grade would need a complexity-class interpretation
232+
(e.g. polynomial vs super-polynomial).
233+
234+
3. **Decidability-respecting echo.** `Echo⁺ f y = Dec (Echo f y)`
235+
pairs the echo with a *constructive decision procedure*. Weaker
236+
than full cost-tracking but enough to distinguish "feasibly
237+
decidable" from "mathematically inhabited".
238+
239+
4. **Witness-search abstract machine.** Model the extractor as a
240+
term in a bounded-step abstract machine and pair it with the
241+
echo. Heavier; more faithful to actual cryptographic modelling.
242+
243+
*Open question.* Is there a single refinement that subsumes all four?
244+
My guess is no: (1) and (4) track asymptotic cost, (2) and (3)
245+
track discrete feasibility classes. They probably live on a small
246+
lattice of access-tracking theories.
247+
248+
*Composition conjecture.* Computational accessibility composes
249+
**multiplicatively** along `g ∘ f` in the canonical case — the
250+
cost of extracting a `g ∘ f` witness is bounded by the product of
251+
component costs. This is the standard complexity composition and
252+
should carry over; would need to be stated carefully since the
253+
accumulation iso of `composition.md` §1 introduces an intermediate
254+
`b : B` whose extraction cost is implicit.
255+
256+
*Worked example motivating the axis.* Hash chains in a blockchain.
257+
Each block's header is a pre-image echo over the previous block's
258+
hash. Information-theoretically, the entire chain's residue structure
259+
is determined by any final hash value. Computationally, reconstructing
260+
earlier blocks from the final hash alone is infeasible — precisely
261+
the property that makes the chain tamper-evident. The current Echo
262+
Types framework cannot name this distinction as a type-level fact.
263+
264+
---
265+
179266
## Cross-classification table
180267

181268
A first cut at placing existing modules on the axes. Entries marked
182269
`?` are not yet pinned down. Entries marked `·` are not applicable.
183-
184-
| Module | Ext/Int | Exact/Approx | Local/Global | Canonical | Compositional | Static/Dynamic | Proof-rel |
185-
|---|---|---|---|---|---|---|---|
186-
| `Echo` | Int | Exact | Global | Canon | Expected | Static | Yes |
187-
| `EchoCharacteristic` | Both | Exact | Local | Canon | ? | Static | Yes |
188-
| `EchoResidue` | Int→Shadow map | Exact | Global | Canon | ? | Static | Yes |
189-
| `EchoIndexed` | Int | Exact | Global | Pres-dep by role | ? | Static | Yes |
190-
| `EchoChoreo` | Int | Exact | Local | Pres-dep | ? | Dynamic | Yes |
191-
| `EchoEpistemic` | Int | Exact | Global | Pres-dep by agent | ? | ? | Yes |
192-
| `EchoLinear` | Int | Exact | Global | Canon | ? | Static | Yes |
193-
| `EchoGraded` | Int | Exact | Global | Canon | Expected | Static | Yes |
194-
| `EchoTropical` | Int | Approx-ish | Local | Pres-dep | ? | Static | Yes |
195-
| `EchoOrdinal` | Int | Exact | Local | Canon | ? | Static | Yes |
270+
The access column uses `Info` for information-theoretic only (typical
271+
for a theorem-prover module with no resource semantics) and is the
272+
uniform default at this stage — no module currently models
273+
computational access as a first-class property.
274+
275+
| Module | Ext/Int | Exact/Approx | Local/Global | Canonical | Compositional | Static/Dynamic | Proof-rel | Access |
276+
|---|---|---|---|---|---|---|---|---|
277+
| `Echo` | Int | Exact | Global | Canon | Expected | Static | Yes | Info |
278+
| `EchoCharacteristic` | Both | Exact | Local | Canon | ? | Static | Yes | Info |
279+
| `EchoResidue` | Int→Shadow map | Exact | Global | Canon | ? | Static | Yes | Info |
280+
| `EchoIndexed` | Int | Exact | Global | Pres-dep by role | ? | Static | Yes | Info |
281+
| `EchoChoreo` | Int | Exact | Local | Pres-dep | ? | Dynamic | Yes | Info |
282+
| `EchoEpistemic` | Int | Exact | Global | Pres-dep by agent | ? | ? | Yes | Info |
283+
| `EchoLinear` | Int | Exact | Global | Canon | ? | Static | Yes | Info (proxy) |
284+
| `EchoGraded` | Int | Exact | Global | Canon | Expected | Static | Yes | Info (proxy) |
285+
| `EchoTropical` | Int | Approx-ish | Local | Pres-dep | ? | Static | Yes | Info |
286+
| `EchoOrdinal` | Int | Exact | Local | Canon | ? | Static | Yes | Info |
196287

197288
Multiple `?` entries are open research: the compositional behaviour
198289
of the choreographic, epistemic, and tropical echoes has not been
199290
systematically checked and may turn out to differ from the clean
200-
composition law for the base `Echo`.
291+
composition law for the base `Echo`. The `Info (proxy)` marks on
292+
`EchoLinear` and `EchoGraded` indicate modules whose usage modes and
293+
grade semirings *approximate* cost-tracking at the access axis but
294+
do not commit to an algorithmic-cost interpretation.
201295

202296
---
203297

204298
## Open: new axes worth considering
205299

300+
Axes listed here have distinguishing examples but have not been
301+
developed far enough to promote to a numbered axis.
302+
206303
- **Reversibility axis.** Does `f` admit a section? Partial section?
207304
No section? The shape of `Echo(f)` changes sharply across these.
208305
Evidence: `no-section-collapse` in `EchoCharacteristic.agda`.
@@ -213,3 +310,9 @@ composition law for the base `Echo`.
213310
types may themselves form a category with interesting properties
214311
(e.g. all morphisms factor through a residue). Currently indirect
215312
in `EchoCategorical.agda`; worth an explicit axis once developed.
313+
314+
*History note.* Axis 8 (information-theoretic vs computational
315+
access) was promoted from this list on the same commit that added
316+
it as a numbered axis. The cryptographic-hash example in
317+
`examples.md` §8 was the case that forced the promotion: no other
318+
axis could distinguish "preimage exists" from "preimage is findable".

0 commit comments

Comments
 (0)