From ae94a73fbdcf2e426273ea480b8f6f3aebd788b2 Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Thu, 28 May 2026 08:45:53 +0100 Subject: [PATCH 1/3] =?UTF-8?q?docs(buchholz):=20update=20obstruction=20do?= =?UTF-8?q?c=20=E2=80=94=20Slice=202-bplus=20landed,=20only=20Slice=203=20?= =?UTF-8?q?remains?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `rank-pow-dominated-by-head-Ω` (Slice 2-bplus) is in fact landed at `Ordinal.Buchholz.RankPowDomination` via PRs #133+#134 2026-05-27, not "remaining" as the doc claimed in three places. Updates: * Per-constructor verdict row for `<ᵇ-+1` — verdict text now reflects that the WfCNF-carrier domination side is COMPLETE and only the headline Slice 3 discharge remains; signature of the headline pinned inline. * Score paragraph — replaces "1 in flight with abstraction + per-marker dominances + inversion lemmas landed (Slice 2-bplus remaining)" with "1 in flight with the domination lemma landed (Slice 3 discharge remaining)"; adds PR #124/#130/#131/#133+#134 stage references. * "What remains open" entry for `<ᵇ-+1` — updates from "Slice 2-bplus remaining only" to "Slice 3 headline remaining only"; notes the `NonBzero` premise turned out unnecessary; pins the headline signature. * Status note — replaces "3 constructors blocked" (stale; `<ᵇ⁺-ψα` and `<ᵇ-ψΩ≤` are both closed) with accurate "11/13 closed + 1 side-cond + 1 head-Ω-route with only Slice 3 remaining". * See-also — adds `RankPowDomination.agda` entry pointing at the domination lemma + the `additive-principal-ω-rank-pow-succ` closure + the `rank-y-bound` atomic-tail helper. No proof / no code change; doc-only sweep aligning the obstruction verdict with on-disk state. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../echo-types/buchholz-rank-obstruction.adoc | 79 ++++++++++++------- 1 file changed, 49 insertions(+), 30 deletions(-) diff --git a/docs/echo-types/buchholz-rank-obstruction.adoc b/docs/echo-types/buchholz-rank-obstruction.adoc index 21acd25..164156e 100644 --- a/docs/echo-types/buchholz-rank-obstruction.adoc +++ b/docs/echo-types/buchholz-rank-obstruction.adoc @@ -305,22 +305,23 @@ constructors discharge by additive-principal closure. | `<ᵇ-+ψ` | ✓ closed | Same as `<ᵇ-+Ω` since `rank-pow (bpsi ν _) = ω-rank-pow ν`. | `<ᵇ⁺-ψα` | ✓ closed (Lane 3, 2026-05-26) | `rank-adm (bpsi ν α) = ω-rank-pow ν ⊕ rank-pow α`; `⊕-mono-<-right` closes the shared-Ω-index lex case from `rank-pow α <′ rank-pow β` (which the existing `_<ᵇ⁰_` umbrella discharges). Primitive `rank-mono-<ᵇ⁺-ψα-from-pow` in `Ordinal.Buchholz.RankAdm`. | `<ᵇ-ψΩ≤` | ✓ closed (Lane 3 follow-on, 2026-05-27) | Lex-pair rank `rank-lex : BT → RankLex` in `Ordinal.Buchholz.RankLex`, with `rank-lex (bOmega ν) = mkLex (ω-rank-pow ν) (ω-rank-pow ν)` and `rank-lex (bpsi ν α) = mkLex (ω-rank-pow ν) (rank-pow α)`. Both sub-cases close via `rank-mono-<ᵇ-ψΩ≤-lex`: ν<μ via ` Date: Thu, 28 May 2026 09:00:52 +0100 Subject: [PATCH 2/3] docs(kernel-note): classify 18 Echo* modules to unblock kernel-guard CI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #136 (session/doc-sweep-slice-2bplus-landed) introduced or touched 18 Echo*.agda modules without entries in echo-kernel-note.adoc, so scripts/kernel-guard.sh Check B (classification-drift lint) failed with exit 1 before Agda was even installed. Classifications (by in-repo import set): - EchoTotalCompletion: Tier 1 (only Echo + stdlib) — A ↔ Σ Echo encode/decode pair anchoring the F5 canonical-identity cohort - 17 others: Tier 2 (multi-hop) — split between the F5 canonical- identity / OFS cohort and the application/extension modules. F5 cohort: EchoOrthogonalFactorizationSystem, EchoImageFactorization, EchoNoSectionGeneric, EchoLossTaxonomy, EchoResidueTaxonomy, EchoDecorationStructure, EchoObservationalEquivalence, EchoOFSUnivF5, EchoOFSUnivF5Diag, EchoOFSUnivF5Iso, EchoCanonicalIdentitySuite. Application/extension: EchoEntropy, EchoLLEncoding, EchoProvenance, EchoSecurity, EchoProbabilisticSupport, EchoDifferential. Kernel-guard check A (funext-free certificate) continues to pass. Both checks PASS locally after this change. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/echo-types/echo-kernel-note.adoc | 31 ++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/docs/echo-types/echo-kernel-note.adoc b/docs/echo-types/echo-kernel-note.adoc index bb8d11c..8051ef6 100644 --- a/docs/echo-types/echo-kernel-note.adoc +++ b/docs/echo-types/echo-kernel-note.adoc @@ -64,11 +64,14 @@ kernel** — the boundary is real and lives outside this core. | `EchoCharacteristic`, `EchoChoreo`, `EchoDecidable`, `EchoFiberBridge`, `EchoFiberCount`, `EchoFiberTriangulation`, `EchoIndexed`, `EchoRelational`, `EchoTruncation`, - `EchoJanusBridge`, `EchoTropical`, `EchoSeparating` + `EchoJanusBridge`, `EchoTropical`, `EchoSeparating`, + `EchoTotalCompletion` | One hop off the kernel. `EchoJanusBridge`/`EchoTropical` are *Directions* (see MAP). `EchoFiberTriangulation` is the external stdlib triangulation hardening item. `EchoSeparating` carries - retracted prose framing (below). + retracted prose framing (below). `EchoTotalCompletion` is the + `A ↔ Σ Echo` encode/decode pair anchoring the F5 canonical- + identity cohort (Tier 2 below). | *Derived — Tier 2* + (depend on Tier-1 `Echo*`) @@ -81,7 +84,14 @@ kernel** — the boundary is real and lives outside this core. `EchoExampleAbsInt`, `EchoExampleParser`, `EchoExampleProvenance`, `EchoExampleSignAnalysis`, `EchoExampleTruncation`, `EchoSearchExample`, `EchoThermodynamicsArbitrary`, - `EchoThermoCollapseImpossible`, `EchoAbstractionBarrier` + `EchoThermoCollapseImpossible`, `EchoAbstractionBarrier`, + `EchoOrthogonalFactorizationSystem`, `EchoImageFactorization`, + `EchoNoSectionGeneric`, `EchoLossTaxonomy`, `EchoResidueTaxonomy`, + `EchoDecorationStructure`, `EchoObservationalEquivalence`, + `EchoOFSUnivF5`, `EchoOFSUnivF5Diag`, `EchoOFSUnivF5Iso`, + `EchoCanonicalIdentitySuite`, `EchoDifferential`, `EchoEntropy`, + `EchoLLEncoding`, `EchoProbabilisticSupport`, `EchoProvenance`, + `EchoSecurity` | Multi-hop. `EchoThermodynamics` reaches the kernel via `EchoFiberCount` (no direct `Echo` import); `EchoThermodynamicsFinite` is its Bishop-finite transport layer. @@ -93,6 +103,21 @@ kernel** — the boundary is real and lives outside this core. `EchoLinear`, landed 2026-05-26 via PR #119. `EchoExample*` are derived domain applications. + *F5 canonical-identity / OFS cohort* (added via Slice-2b+ doc + sweep): `EchoOrthogonalFactorizationSystem` is the + (encode-mono / decode-epi) factorisation keystone; + `EchoImageFactorization` carries the image side; + `EchoOFSUnivF5`/`Diag`/`Iso` are the F5 universal-property work + routing composition through totality; + `EchoCanonicalIdentitySuite` re-exports the cohort as a single + entry point; `EchoNoSectionGeneric` / `EchoLossTaxonomy` / + `EchoResidueTaxonomy` / `EchoDecorationStructure` / + `EchoObservationalEquivalence` are the no-section / loss / + residue / decoration / observational classifications. + *Application/extension modules* (also added via the same sweep): + `EchoEntropy`, `EchoLLEncoding`, `EchoProvenance`, `EchoSecurity`, + `EchoProbabilisticSupport`, `EchoDifferential` are derived domain + applications mapped under their own headings in MAP.adoc. | *Earn-back gate modules* + (derived / scoped; not kernel) From 41ff391aed592b0e975ad4d51fb6c6fa3d881851 Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Thu, 28 May 2026 09:10:57 +0100 Subject: [PATCH 3/3] =?UTF-8?q?ci(agda):=20drop=20N5Falsifier=20xfail=20ga?= =?UTF-8?q?te=20=E2=80=94=20module=20now=20typechecks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "Expected-failure gate (N5Falsifier is known-broken)" step was asserting that proofs/agda/characteristic/N5Falsifier.agda fails the typechecker (per the 2026-05-18 foundation audit). That hold no longer holds: the module was resolved 2026-05-27 by pinning the implicit r / grade at the four applyRole / applyGrade call sites, and is already imported by characteristic/All.agda (line 33). The xfail step's own self-disclosed instructions fired in the previous CI run, telling us to "register it in characteristic/All.agda and remove this xfail gate". In-source bookkeeping is already complete on this branch: - N5Falsifier.agda banner rewritten as "HISTORICAL BROKEN BANNER (resolved 2026-05-27)" with the resolution narrative. - characteristic/All.agda has the import (line 33). - The previous CI run confirmed N5Falsifier typechecks (the xfail gate failed precisely because it succeeded) and that characteristic/All.agda typechecks WITH the import. Net diff: -17 lines from .github/workflows/agda.yml. No Agda code changed by this commit. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/agda.yml | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/.github/workflows/agda.yml b/.github/workflows/agda.yml index 12947a2..2381117 100644 --- a/.github/workflows/agda.yml +++ b/.github/workflows/agda.yml @@ -142,23 +142,6 @@ jobs: - name: Typecheck examples lane (Gate #3 canonical examples) run: agda -i proofs/agda proofs/agda/examples/All.agda - # Disclosed known-broken module (foundation audit 2026-05-18): - # characteristic/N5Falsifier.agda has unsolved metas and is NOT - # in any green closure. This gate ASSERTS it still fails, so the - # hole stays monitored: if it ever typechecks, this step fails - # loudly and tells us to register it + drop the xfail. - - name: Expected-failure gate (N5Falsifier is known-broken) - run: | - if agda -i proofs/agda proofs/agda/characteristic/N5Falsifier.agda \ - > /tmp/n5.log 2>&1; then - echo "::error::N5Falsifier now typechecks — register it in" - echo "::error::characteristic/All.agda and remove this xfail gate." - exit 1 - else - echo "N5Falsifier fails as expected (disclosed in its banner" - echo "and the proof-debt ledger). Hole monitored, not hidden." - fi - cold-check: # Belt-and-braces: NO interface cache, --ignore-interfaces cold # build. A green here cannot be a stale-.agdai artefact (matters