echo-types is a constructive Agda formalisation of echo types — a way of treating "loss that is not total erasure" as a first-class object. Given a function f : A → B, the echo at y : B is Σ (x : A), (f x ≡ y): the proof-relevant set of inputs that map to y. Echo types target the third case between fully reversible (no loss) and fully irreversible (forgotten): irreversible-but-with-retained-proof-relevant-constraint-on-what-was-lost. Bridges connect echoes to affine/linear types, graded modalities, tropical semirings, choreographic projections, and epistemic indistinguishability.
echo-types is part of the hyperpolymath ecosystem; it serves the foundation role for proof-relevant lossy computation.
Many real-world transforms lose information but not all of it: a checkpoint hash retains a constraint on its preimage, a privacy projection retains a constraint on the original record, a choreographic role-projection retains a constraint on the global state. Without echo types, formal arguments about these constructions either pretend the loss is total (over-strong) or pretend the loss is reversible (under-strong). Echo types give the middle case a precise treatment.
-
Authors of formally-verified protocols where role projections / privacy collapses / lossy aggregations need typed witnesses for what was retained.
-
Authors of refinement-typed and graded type systems looking for a foundational vocabulary for loss-with-residue.
-
Anyone designing audit / provenance / hash-chain systems who wants a proof-relevant account of what the audit step preserves.
Per .machine_readable/6a2/STATE.a2ml:
-
Core echo / fiber theorems present (
echo-intro,map-over,map-over-id,map-over-comp,map-square). -
Characteristic non-injectivity / no-section family present.
-
Bridges: linear, graded, tropical, choreographic, epistemic, CNO, Janus, Dyadic, Ordinal, Indexed, Relational, Categorical, Scope.
-
Investigation EI-2 (integration-recipe distinctness) terminated negatively via PATH B.
-
.machine_readable/6a2/STATE.a2ml § ei-2is the authoritative record; do not reopen.
Ongoing tracks at a glance (point-in-time, see roadmap.adoc for the live status):
-
Identity claim.
docs/retractions.adocR-2026-05-18 narrows the public claim to a loss-graded reindexing modality over a thin poset (not a graded comonad). Every newer artefact is stated within those narrowings. -
Ordinal / Buchholz track. 11 of 13 per-constructor rank-mono cases closed under the WfCNF-restricted
<ᵇ⁻via theRankPow/RankAdm/RankLexslices. The remaining<ᵇ-+1joint-bplus case is now FULLY CLOSED (2026-05-27) via the head-Ω domination route:head-Ω(Slice 1) +ω-rank-pow-succwith per-marker strict dominance at both branches (Slice 2 + Slice 2-omega) + the option-(b) head-Ω inversion lemmas (Ordinal.Buchholz.HeadOmegaInversion) + the WfCNF-carrier structural recursion (Slice 2-bplus,Ordinal.Buchholz.RankPowDomination.rank-pow-dominated-by-head-Ω). Seedocs/echo-types/buchholz-rank-obstruction.adoc. -
Ordinal / Buchholz track — Slice 3 (2026-05-28).
Ordinal.Buchholz.RankPowSlice3lands three primitives —NonBzero(left-spine non-bzero predicate),ω-rank-pow-succ-≤-via-<Ω(strict-jump bridge), andhead-Ω-lower-bound(dual ofrank-pow-dominated-by-head-Ω). On top of those,Ordinal.Buchholz.RankPowSlice3Headlinecloses the Slice 3 headlinerank-mono-<ᵇ-+1-via-head-Ωvia Route A — a clean chain through the four prerequisites with no structural recursion, taking the strict-head premisehead-Ω x₁ <Ω head-Ω y₁as an external hypothesis. PR #142 wired the umbrella case-split (<ᵇ¹extension with joint-bplus + strict-head dispatch). PR #143 added the lex-rank companion: thebpsi-source-at-equalityψ-rank discharge — closing the last remaining sub-case via rank-lex. The<ᵇ-+1joint-bplus rank-mono closure is now substantively complete via the head-Ω + lex-rank composition. -
Canonical identity layer (Tier 1 + Tier 2 extensions, 2026-05-28).
EchoImageFactorizationProplands the (epi, mono) earn-back module, module-parameterised in a truncation interface (Tier 2, adjacent toEchoImageFactorization).EchoResidueTaxonomy’s `ResidueForm f Rrecord gainsSearchandEpistemicinstances bringing the total to eight (alongside the existing trivial, identity, generic Σ-cert, linear-affine, indexed, cost — the latter two landed 2026-05-27 as audit follow-ons). -
CI / foundational hygiene (2026-05-28). Kernel-guard discipline scaled to the canonical-identity cohort: 18 previously-unclassified
Echo*.agdamodules (the canonical-identity / OFS cohort plus the application/extension modules —EchoEntropy,EchoLLEncoding,EchoProvenance,EchoSecurity,EchoProbabilisticSupport,EchoDifferential) are now classified indocs/echo-types/echo-kernel-note.adoc. The (now-stale)N5Falsifierxfail gate was removed from.github/workflows/agda.ymlfollowing the 2026-05-27 resolution ofproofs/agda/characteristic/N5Falsifier.agda(the unsolved-metas were an inference blocker, not a content blocker; fourapplyRole/applyGradecall sites had their implicitr/gradepinned). This is infrastructure honesty, not a proof-content advance. -
Tutorial track (Lane 5). Three worked walkthroughs under
tutorial/(certified region-exit audit, epistemic erasure, provenance/debugging echo); each carries an honest-bound disclosure at the top and a matched-negative block at the bottom. The tutorial tree builds with the repo root added to the Agda include path; seetutorial/README.adoc. -
Establishment track (Pillar E). Internal programme (Pillars A–D) complete since 2026-05-17. The paper (
docs/echo-types/paper.adoc) is a living draft with remaining[EXPAND]tags; the venue + Zenodo + outreach plan sits indocs/echo-types/pillar-e-offline.adoc(author-driven).
-
docs/echo-types/MAP.adoc— the master map (every direction, status-tagged). -
docs/echo-types/echo-kernel-note.adoc— kernel-vs-derived classification; status SoT for theEcho*.agdadependency cone. -
roadmap.adoc+roadmap-gates.adoc— lane structure + identity-claim gates. -
tutorial/README.adoc— the pedagogy track if you want to read worked examples first. -
docs/retractions.adoc— read before citing any claim above as final.