diff --git a/proofs/agda/All.agda b/proofs/agda/All.agda index d76de3e..b8d9ea1 100644 --- a/proofs/agda/All.agda +++ b/proofs/agda/All.agda @@ -149,6 +149,7 @@ open import Ordinal.Buchholz.RankPowSlice3Headline open import Ordinal.Buchholz.RankMonoUmbrella open import Ordinal.Buchholz.RankMonoUmbrellaSlice3 open import Ordinal.Buchholz.RankMonoUmbrellaSlice4 +open import Ordinal.Buchholz.RankMonoSameLeft open import Ordinal.Buchholz.RecursiveSurfaceOrder open import Ordinal.Buchholz.RecursiveSurfaceBudget open import Ordinal.Buchholz.SurfaceOrder diff --git a/proofs/agda/Ordinal/Buchholz/RankMonoSameLeft.agda b/proofs/agda/Ordinal/Buchholz/RankMonoSameLeft.agda new file mode 100644 index 0000000..51e6fbb --- /dev/null +++ b/proofs/agda/Ordinal/Buchholz/RankMonoSameLeft.agda @@ -0,0 +1,173 @@ +{-# OPTIONS --safe --without-K #-} +-- SPDX-License-Identifier: MPL-2.0 +-- SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell + +-- Path-3 PROTOTYPE — same-left joint-bplus extension (2026-05-30). +-- +-- ## Context +-- +-- Slice 3+4 Route A's rank-lex-jb pivot (PRs #147 / #165 / #166) +-- attacks the joint-bplus `<ᵇ-+1`-at-equal-head case by enriching +-- the RANK FUNCTION (carrying `leftmost-α` as a second component) +-- to discriminate where rank-pow alone collapses. The (a)+(b)+(c) +-- assembly identified a key insight in PR #166's note: the +-- consumer-side first-eq derivation reduces to TAIL-RANK-EQUALITY +-- under WfCNF (`first-eq-from-bpsi-source-at-equal-head`), and the +-- same residual obligation also gates the ψ-rank-level closure +-- (`RankLexSlice3.rank-adm-bpsi-strict-at-equality`). +-- +-- ## Path-3 ALTERNATIVE — enrich the SOURCE rule, not the rank +-- +-- The K-free `_<ᵇ_`'s `<ᵇ-+1` constructor carries only `x₁ <ᵇ y₁` +-- as premise; nothing on `x₂ vs y₂`. For the same-LITERAL-left +-- sub-case (`bplus x y₂ <ᵇ bplus x z₂` when `y₂ <ᵇ z₂`), +-- `<ᵇ-irrefl` makes the only viable `<ᵇ-+1` instantiation +-- (`x <ᵇ x`) impossible — so this case is UNREACHABLE in K-free +-- `_<ᵇ_`. The extended `_<ᵇ⁺_` of `Ordinal.Buchholz.OrderExtended` +-- adds `<ᵇ⁺-+2 : x₁ ≡ y₁ → x₂ <ᵇ y₂ → bplus x₁ x₂ <ᵇ⁺ bplus y₁ y₂` +-- to fill this gap (mod a K-elimination on the shared `x₁ ≡ y₁`). +-- +-- This PROTOTYPE narrows the extended `<ᵇ⁺-+2` to `<ᵇ⁰` on the +-- tail premise (the closed 10-constructor umbrella), then shows +-- rank-pow closure FOR THE SAME-LEFT JOINT-BPLUS CASE WITHOUT +-- routing through rank-lex-jb at all. Path-3's claim: enriching +-- the source-rule with same-left + tail-`<ᵇ⁰` discharges this +-- case at the rank-pow level via `rank-pow-bplus-right-mono`, +-- bypassing the rank-lex-jb pivot's first-eq derivation +-- obligation entirely. +-- +-- ## Scope of this prototype +-- +-- * Extends only `_<ᵇ⁰_` (10-constructor closure), not `_<ᵇ¹_` +-- (which adds strict-head joint-bplus) — keeps the prototype +-- minimal and the closure inductively grounded. +-- * Does NOT prove well-foundedness of the extended relation — +-- that would need a separate proof; orthogonal to the +-- rank-mono question. +-- * Does NOT subsume rank-lex-jb for the cross-head case +-- (`bpsi ν α` vs `bOmega ν` etc.) — that case has different +-- left-summand SYNTAX, only equal rank-pow. Rank-lex-jb +-- handles those; this prototype handles same-left-syntax. +-- +-- ## What this prototype demonstrates +-- +-- The Path-3 implication from PR #166's closing note: +-- "the source rule may need enrichment, not the rank function". +-- A `<ᵇ⁰`-grounded same-left source rule closes its rank-pow +-- obligation in ONE LINE via `rank-pow-bplus-right-mono`, +-- contrasted with the multi-PR rank-lex-jb assembly's chain +-- through first-eq + leftmost-α-strict + `