Skip to content

Commit a9fe6a3

Browse files
feat(v0.3.0): mirror Tier-3 audience-facing spine + LL-encoding gap (#6)
## Summary - Bumps pin: echo-types `e7dded6` (2026-05-27) → `eed4250` (2026-05-28). - Adds five module-section shadows: `EchoProvenance` + `EchoSecurity` + `EchoProbabilisticSupport` + `EchoDifferential` (Tier-3 audience-facing spine) + `EchoLLEncoding` (cementing-negative). - Each = finite shadow of a named Agda module; testset comments preserve the upstream honest-bound discipline (Security is type-level no-section ONLY; Sampling is TYPE-LEVEL support tracking; Differential is perturbation tracking). - Test suite: **253 passing assertions across 18 testsets** (was 162 / 13). ## What's intentionally NOT mirrored - `EchoOFSUnivF5Iso` (F5-3 composition design) — funext-qualified upstream; package policy excludes funext-conditional surfaces. - Ordinal-lane work (Slice 3/4 umbrella, `RankPow*`, `HeadOmegaInversion`, `RankLexJointBplus`) — separate pillar from the echo functor / residue / thermo core; needs a new `Bord` carrier in Julia and an explicit scope agreement before being added. ## Test plan - [x] `julia --project=. -e 'using Pkg; Pkg.test()'` — green, 253 passing. - [x] All v0.1.0 + v0.2.0 testsets unchanged and still pass. - [x] README lookup table updated; "intentionally NOT mirrored" section expanded with funext-qualified + ordinal-lane carve-outs. - [x] Source provenance pin bumped in `src/EchoTypes.jl` preamble. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 742ed4d commit a9fe6a3

4 files changed

Lines changed: 740 additions & 21 deletions

File tree

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
name = "EchoTypes"
77
uuid = "a8ca608b-856a-4215-8c3d-f9ffd1705524"
88
authors = ["Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>"]
9-
version = "0.2.0"
9+
version = "0.3.0"
1010

1111
[compat]
1212
julia = "1.10"

README.md

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,11 @@ concrete finite data and check their stated laws numerically.
3232
## Source of truth
3333

3434
The 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+
75102
Scope limits are inherited honestly: the thermodynamics is a
76103
**finite-domain bound *shape*** in arbitrary natural units — not
77104
quantitative 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**
114144
registered in the Julia General registry and intentionally **not**
115145
part of the AcceleratorGate→KnotTheory→Skein→KRLAdapter chain — it

0 commit comments

Comments
 (0)