@@ -32,9 +32,11 @@ 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 ` e7dded61bb25b8f86fb6e116f4e2827ca2044bcf `
36- (2026-05-27 head, after the Tier-1+Tier-2 spine + F5 full-OFS
37- earn-back + EchoProvenance landed):
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):
3840
3941| Julia surface | Mirrors Agda module / lemmas |
4042| ---| ---|
@@ -48,6 +50,11 @@ earn-back + EchoProvenance landed):
4850| ** 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) |
4951| ** v0.2.0** ` collapse_as_fin ` , ` entropy_shadow ` , ` shannon_shadow ` , ` entropy_shadow_blind ` | ` EchoEntropy.agda ` (discrete Shannon shadow) |
5052| ** 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) |
5158
5259### What is intentionally NOT mirrored
5360
@@ -72,6 +79,26 @@ earn-back + EchoProvenance landed):
7279 * upper* of each pair is what's mirrored, in line with the
7380 ` --safe --without-K ` discipline upstream.
7481
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.
101+
75102Scope limits are inherited honestly: the thermodynamics is a
76103** finite-domain bound * shape*** in arbitrary natural units — not
77104quantitative physics, and not defined over infinite state spaces (the
@@ -103,13 +130,16 @@ about itself.
103130
104131## Status
105132
106- ` v0.2.0 ` , local development. The v0.1.0 surface (` Echo ` ,
107- ` EchoResidue ` , ` EchoFiberCount ` , ` EchoThermodynamics ` ) is preserved
108- unchanged; v0.2.0 adds executable shadows of the Tier-1+Tier-2
109- canonical-identity spine that landed upstream on 2026-05-27
110- (` EchoTotalCompletion ` , ` EchoOrthogonalFactorizationSystem ` ,
111- ` EchoImageFactorization ` , ` EchoNoSectionGeneric ` , ` EchoLossTaxonomy ` ,
112- ` EchoEntropy ` , ` EchoObservationalEquivalence ` ). Registered as
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
113143` EchoTypes ` in the hyperpolymath professional registry; ** not**
114144registered in the Julia General registry and intentionally ** not**
115145part of the AcceleratorGate→KnotTheory→Skein→KRLAdapter chain — it
0 commit comments