@@ -32,24 +32,72 @@ concrete finite data and check their stated laws numerically.
3232## Source of truth
3333
3434The Agda. This release mirrors ` hyperpolymath/echo-types ` at
35- ` origin/main ` commit ` 2ca31220e3efdcf2708e6d2e04869993fbb1e53a ` :
35+ ` origin/main ` commit ` eed42503a1a4c54ec0a347ebef3440b4d4db30c9 `
36+ (2026-05-28 head, after the Tier-3 audience-facing spine landed —
37+ EchoProvenance, EchoSecurity, EchoProbabilisticSupport,
38+ EchoDifferential, EchoLLEncoding, plus the
39+ EchoCanonicalIdentitySuite re-export bundle):
3640
3741| Julia surface | Mirrors Agda module / lemmas |
3842| ---| ---|
39- | ` EchoWitness ` , ` echo_intro ` , ` fiber ` , ` map_over* ` , ` comp_iso_* ` , ` cancel_iso_* ` | ` Echo.agda ` (kernel) |
43+ | ` EchoWitness ` , ` echo_intro ` , ` fiber ` , ` map_over* ` , ` comp_iso_* ` , ` cancel_iso_* ` | ` Echo.agda ` (kernel — also re-pinned via ` EchoKernel.agda ` upstream ) |
4044| ` EchoR ` , ` echo_to_residue ` , ` residue_strictly_loses ` | ` EchoResidue.agda ` (` echo-to-residue ` , ` strict-weakening-collapse ` ) |
4145| ` fiber_size ` , ` flog2 ` , ` landauer_bound ` , ` fiber_erasure_bound ` , ` bennett_reversible ` , ` landauer_collapse ` | ` EchoFiberCount.agda ` + ` EchoThermodynamics.agda ` |
42-
43- > ** Pending upstream (forward-reference, not yet tracked):** the
44- > mirrored kernel surface above corresponds to the curated funext-free
45- > core being introduced upstream as ` proofs/agda/EchoKernel.agda ` in
46- > echo-types ** PR #56 ** (` foundation/echo-kernel-2026-05-18 ` , open at
47- > time of writing). It is * not* on ` origin/main ` yet, so the SoT pin
48- > deliberately stays at ` 2ca3122 ` (canonical ` main ` ). When PR #56
49- > merges, this pin bumps to the actual squash-merge commit and the
50- > table row gains an explicit ` EchoKernel ` reference. Until then, this
51- > companion tracks ` Echo.agda ` directly — ` EchoKernel ` adds no new
52- > mathematics, only a curated re-export + a funext-free certificate.
46+ | ** v0.2.0** ` encode ` , ` decode ` , ` *_roundtrip ` , ` f_factors_via_projection ` | ` EchoTotalCompletion.agda ` (` A↔ΣEcho ` , the slogan-unlock) |
47+ | ** v0.2.0** ` echo_factorisation ` , ` fibre_of_proj1_* ` , ` projection_fibre_roundtrips ` , ` ofs_witness ` | ` EchoOrthogonalFactorizationSystem.agda ` (factorisation existence + projection-fibre identification — funext-qualified clauses NOT mirrored) |
48+ | ** v0.2.0** ` image ` , ` image_factor_* ` , ` is_surjective ` , ` is_injective ` , ` injective_fibres_proj_unique ` | ` EchoImageFactorization.agda ` |
49+ | ** v0.2.0** ` no_section_of_collapsing_map ` , ` no_section_when_non_injective_at ` | ` EchoNoSectionGeneric.agda ` |
50+ | ** v0.2.0** ` HasInverse ` , ` equiv_fibre_center ` , ` equiv_implies_injective ` , ` equiv_fibre_proj_unique ` , ` const_fun ` , ` const_fibre_section ` | ` EchoLossTaxonomy.agda ` (4-case classifier — EQUIV/INJ/SURJ/CONST K-free skeletons) |
51+ | ** v0.2.0** ` collapse_as_fin ` , ` entropy_shadow ` , ` shannon_shadow ` , ` entropy_shadow_blind ` | ` EchoEntropy.agda ` (discrete Shannon shadow) |
52+ | ** v0.2.0** ` LEcho ` , ` EchoMode ` , ` equal_at_mode ` , ` mode_equality_strictly_finer_at_linear ` | ` EchoObservationalEquivalence.agda ` (mode-indexed equality) |
53+ | ** v0.3.0** ` Provenance ` , ` ProvRecord ` , ` provenance_collapses_at ` , ` prov_echo_tag1/2 ` , ` echoes_distinguish_tag ` , ` prov_residue_collapses_tags ` , ` bool_over_nat_provenance ` | ` EchoProvenance.agda ` (Tier-3 audience move 1 — 4 parametric theorems + Bool-over-ℕ instance) |
54+ | ** v0.3.0** ` Security ` , ` exit_collapses_at ` , ` audit_no_recovery_at ` , ` region_exit_audit_instance ` | ` EchoSecurity.agda ` (Tier-3 audience move 2 — per-region audit no-recovery via the generic no-section gadget) |
55+ | ** v0.3.0** ` Sampling ` , ` Sample ` , ` support_collapses_at ` , ` samp_echo_idx1/2 ` , ` echo_carries_which_index ` , ` samp_residue_loses_index ` , ` bool_indexed_nat_sampling ` | ` EchoProbabilisticSupport.agda ` (Tier-3 audience move 3 — marginal loses sampling index) |
56+ | ** v0.3.0** ` Sensitivity ` , ` Perturbed ` , ` blur_collapses_perturbations_at ` , ` diff_echo_pert1/2 ` , ` echo_carries_perturbation ` , ` diff_residue_loses_perturbation ` , ` bool_perturbed_nat_sensitivity ` | ` EchoDifferential.agda ` (Tier-3 audience move 4 — blur loses perturbation tag) |
57+ | ** v0.3.0** ` LLShallowEncoding ` , ` trivial_encoding ` , ` trivial_encoding_has_section ` , ` ll_encoding_gap ` , ` source_no_section_holds ` , ` gap_paired ` | ` EchoLLEncoding.agda ` (cementing-negative — the LL ` !A := 1 ` shadow admits an encoded section paired with source-side no-section) |
58+
59+ ### What is intentionally NOT mirrored
60+
61+ - ** Funext-qualified surfaces.** The F5 earn-back gate gave the full
62+ OFS (uniqueness up to iso + diagonal lifting) upstream under
63+ funext, and ` EchoPullbackUnivF4 ` gives the strict pullback
64+ universal property the same way. Julia has no funext to take as
65+ hypothesis; the conditional claims would be vacuous. Only the
66+ unconditional fragment of ` ofs-witness ` is mirrored.
67+
68+ - ** Retracted surface (R-2026-05-18).** Graded-comonad framing,
69+ two-models, universal-property, conservativity. The mechanised
70+ laws survive upstream (and so does the model-independence
71+ theorem), but the * framing* is retracted; the companion does not
72+ reproduce any of it.
73+
74+ - ** Higher type-theoretic structure.** UIP-strength claims
75+ (full Σ-pair equality under injectivity, ` A ↔ Echo(const y0) ` ,
76+ contractible fibres), propositional truncation (the
77+ (epi, mono) collapse of the image factorisation), and HoTT
78+ identification types beyond decidable equality. The proof-relevant
79+ * upper* of each pair is what's mirrored, in line with the
80+ ` --safe --without-K ` discipline upstream.
81+
82+ - ** Ordinal-lane work (` Ordinal/Buchholz/* ` ).** The Slice-3 + Slice-4
83+ rank-mono umbrella, ` RankPow* ` , head-Ω inversion, joint-bplus
84+ scaffolds — all live in echo-types's ordinal pillar, separate
85+ from the echo functor / residue / thermodynamics core this
86+ companion mirrors. Adding ordinal shadows would require a new
87+ ` Bord ` carrier in Julia and a redesigned scope agreement. Not
88+ in v0.3.0; out-of-scope for the companion's stated discipline.
89+
90+ ### Honest-bound discipline (Tier 3)
91+
92+ The four v0.3.0 audience-facing modules ship explicit "what is
93+ NOT proved" lists upstream — ` EchoSecurity ` is type-level
94+ no-section, NOT bytes-zeroed / side-channel-safe / tamper-evident;
95+ ` EchoProbabilisticSupport ` is support tracking, NOT measure
96+ theory / coupling / extraction; ` EchoDifferential ` is perturbation
97+ tracking, NOT ε-DP / Lipschitz / noise calibration. The Julia
98+ testsets preserve this scope in their comments. Consumers should
99+ not promote a green test to a real-world security or privacy
100+ claim — those need additional structure beyond the finite shadow.
53101
54102Scope limits are inherited honestly: the thermodynamics is a
55103** finite-domain bound * shape*** in arbitrary natural units — not
@@ -82,11 +130,20 @@ about itself.
82130
83131## Status
84132
85- ` v0.1.0 ` , local development. ** Not registered** in the Julia General
86- registry and intentionally ** not** part of the
87- AcceleratorGate→KnotTheory→Skein→KRLAdapter registration chain — it is
88- a standalone companion, registered only on its own merit if and when
89- that is warranted.
133+ ` v0.3.0 ` , local development. The v0.1.0 surface (` Echo ` ,
134+ ` EchoResidue ` , ` EchoFiberCount ` , ` EchoThermodynamics ` ) and the
135+ v0.2.0 Tier-1+Tier-2 canonical-identity spine are preserved
136+ unchanged; v0.3.0 adds executable shadows of the Tier-3
137+ audience-facing spine that landed upstream on 2026-05-27/28
138+ (` EchoProvenance ` , ` EchoSecurity ` , ` EchoProbabilisticSupport ` ,
139+ ` EchoDifferential ` ) plus the cementing-negative ` EchoLLEncoding `
140+ (LL shallow-encoding gap with paired source-side no-section).
141+ Test suite: ** 253 passing assertions across 18 testsets** , each
142+ the finite shadow of a named Agda lemma. Registered as
143+ ` EchoTypes ` in the hyperpolymath professional registry; ** not**
144+ registered in the Julia General registry and intentionally ** not**
145+ part of the AcceleratorGate→KnotTheory→Skein→KRLAdapter chain — it
146+ is a standalone companion.
90147
91148## Licence
92149
0 commit comments