Skip to content

ordinal(buchholz): Slice 3 lex-rank companion — bpsi-source-at-equality ψ-rank discharge#143

Merged
hyperpolymath merged 1 commit into
mainfrom
session/rank-lex-joint-bplus
May 28, 2026
Merged

ordinal(buchholz): Slice 3 lex-rank companion — bpsi-source-at-equality ψ-rank discharge#143
hyperpolymath merged 1 commit into
mainfrom
session/rank-lex-joint-bplus

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Lands Ordinal.Buchholz.RankLexSlice3 as the companion module to the
existing RankPowSlice3Headline (PR #141). Closes the ψ-rank-level
discharge of the bpsi-source-at-equality sub-case of <ᵇ-+1
joint-bplus — the case the head-Ω route leaves open.

What this slice closes

Three primitives, all pinned in Ordinal/Buchholz/Smoke.agda under
their own using block per CLAUDE.md Working rules:

  • rank-adm-bpsi-strict-at-equality — wrapper around
    RankAdm.rank-mono-<ᵇ⁺-ψα-from-pow named for the joint-bplus
    consumer: rank-pow α <′ rank-pow β → rank-adm (bpsi ν α) <′ rank-adm (bpsi ν β). Discharges the ψ-rank strict step at the
    equality marker.
  • rank-lex-bpsi-strict-at-equality — same content lifted to
    the existing RankLex._<lex_ order via <lex-second. Lex-rank-
    level mirror for consumers that compose against rank-lex.
  • rank-adm-bplus-decompose-left — definitional refl
    pinning rank-adm (bplus x y) ≡ rank-adm x ⊕ rank-adm y for
    downstream chain composition.

Honest scope

The task's bplus-chain-level conclusion rank-pow (bplus x₁ x₂) <′ rank-pow (bplus y₁ y₂) does NOT close from this slice's
primitives — and that's a structural fact, not a missing-lemma gap:

  • rank-pow (bpsi ν α) = ω-rank-pow ν = rank-pow (bpsi ν β) by
    definition, so no strict step exists at the rank-pow level at
    the equality marker.
  • Promoting to rank-adm yields a clean strict step on the left
    summand (this slice's rank-adm-bpsi-strict-at-equality), but
    lifting through the bplus sum requires either additive-principal
    closure on rank-adm y₁ (not available — generic sum, not an
    ω-power) or strict-left-mono of _⊕_ (a non-theorem; documented
    counterexample in Phase13).

The clean follow-on (deferred): a parallel rank rank-lex-jb : BT → RankLex whose bplus case carries the leftmost-ψ-α info in the
second component. This requires reshaping the existing rank-lex
(whose <ᵇ-ψΩ≤ boundary discharge depends on the oz-second
bplus case) and is a non-local design slice.

Discipline

  • --safe --without-K throughout
  • Zero postulates, no funext, no TERMINATING pragma
  • All headlines pinned in Ordinal/Buchholz/Smoke.agda
  • Module wired into proofs/agda/All.agda adjacent to RankLex
  • Design note inline documents the bplus-chain obstacle in
    sufficient detail that the next session can see which lemmas
    would unblock the full chain without re-deriving the analysis

Test plan

  • agda proofs/agda/Ordinal/Buchholz/RankLexSlice3.agda exits 0
  • agda proofs/agda/Ordinal/Buchholz/Smoke.agda exits 0
  • agda proofs/agda/All.agda exits 0
  • agda proofs/agda/Smoke.agda exits 0
  • No postulate / TERMINATING / trustMe / REWRITE / NO_POSITIVITY / type-in-type in the new module
  • CI green on PR

🤖 Generated with Claude Code

@hyperpolymath hyperpolymath enabled auto-merge May 28, 2026 09:07
…ty ψ-rank discharge

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 <lex order via <lex-second.
  * rank-adm-bplus-decompose-left — definitional refl on the bplus
    decomposition of rank-adm for downstream chain composition.

Honest scope (documented inline + in the module preamble):

The task's intended bplus-chain-level conclusion `rank-pow (bplus
x₁ x₂) <′ rank-pow (bplus y₁ y₂)` is structurally NOT derivable at
the bpsi-source-at-equality sub-case — rank-pow collapses both
ψ-sources at the same ν to the SAME ordinal (ω-rank-pow ν), so no
strict step exists at the rank-pow level. Promoting to rank-adm
gives a clean strict step on the left summand
(rank-adm-bpsi-strict-at-equality), but lifting through the bplus
sum requires either additive-principal closure on `rank-adm y₁`
(NOT available — `ω-rank-pow ν ⊕ rank-pow β` is a generic sum, not
an ω-power) or strict-left-mono of `_⊕_` (a non-theorem; documented
counterexample in Phase13).

The clean follow-on slice would introduce a parallel rank
`rank-lex-jb : BT → RankLex` whose bplus case carries the leftmost-
ψ-α info in the second component; that requires reshaping the
existing rank-lex (its `<ᵇ-ψΩ≤` boundary discharge depends on the
oz-second bplus case) and is deferred as a non-local design slice.

Build invariants held: --safe --without-K throughout; zero
postulates / no funext / no TERMINATING pragma; proofs/agda/All.agda
+ proofs/agda/Smoke.agda + proofs/agda/Ordinal/Buchholz/Smoke.agda
all exit 0 under the current library configuration.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath hyperpolymath force-pushed the session/rank-lex-joint-bplus branch from a82049d to 2de557c Compare May 28, 2026 09:09
@github-actions
Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 74 issues detected

Severity Count
🔴 Critical 17
🟠 High 36
🟡 Medium 21

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "No test directory or test files found",
    "type": "no_tests",
    "file": "/home/runner/work/echo-types/echo-types",
    "action": "flag",
    "rule_module": "honest_completion",
    "severity": "high",
    "deduction": 20
  },
  {
    "reason": "Issue in codeql.yml",
    "type": "missing_workflow",
    "file": "codeql.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in secret-scanner.yml",
    "type": "missing_workflow",
    "file": "secret-scanner.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in agda.yml",
    "type": "unknown",
    "file": "agda.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in agda.yml",
    "type": "unknown",
    "file": "agda.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in governance.yml",
    "type": "unknown",
    "file": "governance.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in hypatia-scan.yml",
    "type": "unknown",
    "file": "hypatia-scan.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in mirror.yml",
    "type": "unknown",
    "file": "mirror.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in scorecard.yml",
    "type": "unknown",
    "file": "scorecard.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
    "type": "agda_postulate",
    "file": "/home/runner/work/echo-types/echo-types/tutorial/provenance_debugging/ProvenanceDebugging.agda",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath hyperpolymath merged commit b026a5d into main May 28, 2026
13 checks passed
@hyperpolymath hyperpolymath deleted the session/rank-lex-joint-bplus branch May 28, 2026 09:12
hyperpolymath added a commit that referenced this pull request May 28, 2026
## Summary

Two corrections to PR #144's narrative refresh.

## ResidueForm instance count: 6 → 8

PR #144 stated the post-#139 ResidueForm count as six. The actual count
is eight. The pre-#139 baseline was already six (not four): the
2026-05-27 audit-follow-on landed \`indexed-residue\` + \`cost-residue\`
(lines 181–234 of EchoResidueTaxonomy.agda). PR #139 then added
\`search-residue\` + \`epistemic-residue\`, for a total of 8.

## Slice 3 closure: PRs #142 + #143

PR #144 framed the Slice 3 umbrella case-split as remaining work and the
\`bpsi=bpsi at equal markers\` sub-case as still needing α's rank via
rank-adm / rank-lex. Both landed in PRs #142 + #143:

- **PR #142** — \`_<ᵇ¹_\` extension with joint-bplus + strict-head
dispatch wires the headline (from #141) into the umbrella.
- **PR #143** — \`bpsi-source-at-equality\` ψ-rank discharge closes the
last sub-case via rank-lex.

CHANGELOG + EXPLAINME updated to acknowledge both.

## Files

- CHANGELOG.md — count fix + new Slice 3 follow-on bullet (#142 + #143)
- EXPLAINME.adoc — Slice 3 narrative refreshed
- docs/echo-types/MAP.adoc — 8 instances enumerated with landing dates
- README.md — Tier 2 mermaid label
- readme.adoc — Tier 2 list mirror

## Verification

\`scripts/kernel-guard.sh\` PASS. No Agda code changed.

## Test plan

- [x] kernel-guard.sh PASS
- [ ] Admin-merge if budget permits

Refs: echo-types#142, echo-types#143, echo-types#144.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant