From 2de557c1dc7dca7344d35b0d7e0b2c2452de49ca Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Thu, 28 May 2026 10:06:53 +0100 Subject: [PATCH] =?UTF-8?q?ordinal(buchholz):=20Slice=203=20lex-rank=20com?= =?UTF-8?q?panion=20=E2=80=94=20bpsi-source-at-equality=20=CF=88-rank=20di?= =?UTF-8?q?scharge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New module Ordinal.Buchholz.RankLexSlice3 closes the ψ-rank-level discharge of the bpsi-source-at-equality sub-case of <ᵇ-+1 joint-bplus. Composes with the existing Slice 3 head-Ω headline (rank-mono-<ᵇ-+1-via-head-Ω in RankPowSlice3Headline) which covers the strict-head premise case; this slice adds the equality-marker case where the strict jump must come from the ψ-argument α's rank rather than the leading Ω-marker. Headlines pinned in Ordinal/Buchholz/Smoke.agda under their own using block per CLAUDE.md Working rules; module wired into proofs/agda/All.agda adjacent to RankLex: * rank-adm-bpsi-strict-at-equality — wrapper around RankAdm's rank-mono-<ᵇ⁺-ψα-from-pow named for the joint-bplus consumer; rank-pow α <′ rank-pow β → rank-adm (bpsi ν α) <′ rank-adm (bpsi ν β). * rank-lex-bpsi-strict-at-equality — same content lifted to the existing RankLex's --- proofs/agda/All.agda | 1 + .../agda/Ordinal/Buchholz/RankLexSlice3.agda | 233 ++++++++++++++++++ proofs/agda/Ordinal/Buchholz/Smoke.agda | 20 ++ 3 files changed, 254 insertions(+) create mode 100644 proofs/agda/Ordinal/Buchholz/RankLexSlice3.agda diff --git a/proofs/agda/All.agda b/proofs/agda/All.agda index 190b75f..1adbc63 100644 --- a/proofs/agda/All.agda +++ b/proofs/agda/All.agda @@ -134,6 +134,7 @@ open import Ordinal.Buchholz.RankPartial open import Ordinal.Buchholz.RankPow open import Ordinal.Buchholz.RankAdm open import Ordinal.Buchholz.RankLex +open import Ordinal.Buchholz.RankLexSlice3 open import Ordinal.Buchholz.HeadOmega open import Ordinal.Buchholz.HeadOmegaInversion open import Ordinal.Buchholz.RankPowDomination diff --git a/proofs/agda/Ordinal/Buchholz/RankLexSlice3.agda b/proofs/agda/Ordinal/Buchholz/RankLexSlice3.agda new file mode 100644 index 0000000..a097769 --- /dev/null +++ b/proofs/agda/Ordinal/Buchholz/RankLexSlice3.agda @@ -0,0 +1,233 @@ +{-# OPTIONS --safe --without-K #-} + +-- Lex-rank companion to the Slice 3 head-Ω discharge, covering the +-- bpsi-source-at-equality sub-case of `<ᵇ-+1` joint-bplus, 2026-05-28. +-- +-- ## Where this sits +-- +-- The Slice 3 headline `Ordinal.Buchholz.RankPowSlice3Headline. +-- rank-mono-<ᵇ-+1-via-head-Ω` discharges `bplus x₁ x₂ <ᵇ bplus y₁ y₂` +-- (from `x₁ <ᵇ y₁`) UNDER A STRICT-HEAD PREMISE `head-Ω x₁ <Ω head-Ω y₁`. +-- The premise is supplied externally by the umbrella's case-split: +-- +-- * x₁ = bOmega μ : `head-Ω-inv-bOmega` gives `μ <Ω head-Ω y₁` +-- directly (STRICT for all three Ω-source +-- constructors). Slice 3 closes. +-- * x₁ = bpsi ν α : `head-Ω-inv-bpsi` gives `ν ≤Ω head-Ω y₁` +-- (NON-STRICT — `<ᵇ-ψΩ≤` permits equal markers). +-- Strict sub-case (`ν <Ω head-Ω y₁`) closes +-- via Slice 3. EQUALITY sub-case +-- (`ν ≡ head-Ω y₁`) is THIS MODULE'S TERRITORY. +-- * x₁ = bplus a b : recurse on the leftmost-leaf shape; reduces to +-- one of the above two atomic cases. +-- +-- This module handles the bpsi-source-at-equality remainder via the +-- existing lex-pair rank `rank-lex` from `Ordinal.Buchholz.RankLex` +-- (whose second component carries `rank-pow α` for the ψ case) plus +-- the existing admissibility-aware rank `rank-adm` from +-- `Ordinal.Buchholz.RankAdm`. +-- +-- ## What this slice closes (the lex headline) +-- +-- The headline: +-- +-- rank-mono-<ᵇ-+1-via-rank-lex : ∀ {ν α β x₂ y₂} +-- → rank-pow α <′ rank-pow β -- second-component lex witness +-- → rank-lex (bplus (bpsi ν α) x₂)