Skip to content

proof: well-foundedness of _<ᵇᵘ_ via rank-embedding transport#170

Merged
hyperpolymath merged 1 commit into
mainfrom
session/rank-mono-union-wf
May 30, 2026
Merged

proof: well-foundedness of _<ᵇᵘ_ via rank-embedding transport#170
hyperpolymath merged 1 commit into
mainfrom
session/rank-mono-union-wf

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Closes Gate 2 of the Slice 3+4 Route A session arc. Derives `WellFounded <ᵇᵘ` mechanically from `rank-pow-mono-<ᵇᵘ` (#168) and the existing `wf-<′` via the standard Subrelation + InverseImage transport pattern documented in `Ordinal.Buchholz.RankBrouwer`'s preamble. Zero new proof obligations; purely structural. `--safe --without-K`, no postulates, no funext.

The rank-embedding recipe

wf-rank-pow-pullback : WellFounded (λ x y  rank-pow x <′ rank-pow y)
wf-rank-pow-pullback = On.wellFounded rank-pow wf-<′

wf-<ᵇᵘ : WellFounded _<ᵇᵘ_
wf-<ᵇᵘ = Subrelation.wellFounded rank-pow-mono-<ᵇᵘ wf-rank-pow-pullback

Two steps:

  1. `On.wellFounded` (= `InverseImage.wellFounded`) lifts well-foundedness of `<′` on `Ord` to the pullback `<′ on rank-pow` on `BT`.
  2. `Subrelation.wellFounded` transports well-foundedness from the pullback to `<ᵇᵘ`, consuming `rank-pow-mono-<ᵇᵘ` as the witness that `<ᵇᵘ` is a sub-relation of the pullback.

The pattern is documented at `RankBrouwer.agda:55-56`.

Slice 3+4 Route A gate status after this PR

Gate Status
1 — tail-rank-equality discharge (cross-head rank-equal case) open (structural blocker)
2 — well-foundedness of `<ᵇᵘ` CLOSED HERE
3 — Path-4 + further source-rule extensions open (future-work, mechanical)

What this does NOT do

  • Does NOT prove well-foundedness of the WfCNF-narrowed `<ᵇᵘⁿ` (proof: WfCNF wrap of the RankMonoUnion umbrella #169) separately — follows by the same Subrelation transport from `wf-<ᵇᵘ` via the canonical `<ᵇᵘⁿ → <ᵇᵘ` projection. Left for a thin follow-on if specifically needed.
  • Does NOT add a Brouwer-rank embedding stronger than `rank-pow` — `rank-pow` is K-free + lands in `Ord` + already discharges the WF transport.

Local verification

  • All four Agda lanes typecheck clean, exit 0.
  • `bash tools/check-guardrails.sh proofs/agda` — 163 modules pass.
  • `sh scripts/kernel-guard.sh` — PASS.

Two new names pinned in `Ordinal/Buchholz/Smoke.agda`: `wf-rank-pow-pullback`, `wf-<ᵇᵘ`.

Slice 3+4 Route A session arc (6 PRs)

PR Layer
#165 rank-lex-jb (b) primitive
#166 rank-lex-jb (c) trichotomy + first-eq
#167 Path-3 same-left source-rule extension
#168 RankMonoUnion architecture
#169 WfCNF wrap of the union
THIS PR WF of the union (Gate 2 closure)

Test plan

  • Module typechecks under `--safe --without-K` with zero postulates.
  • Full suite + Smoke remain green with the new module wired in.
  • CI: `check` + `cold-check` + governance lanes green.
  • Auto-merge on green.

🤖 Generated with Claude Code

Closes Gate 2 of the Slice 3+4 Route A session arc.  Derives
`WellFounded _<ᵇᵘ_` mechanically from `rank-pow-mono-<ᵇᵘ` (PR
#168) and the existing `wf-<′` via the standard Subrelation +
InverseImage transport pattern documented in
`Ordinal.Buchholz.RankBrouwer`'s preamble.  Zero new proof
obligations; purely structural.  `--safe --without-K`, no
postulates, no funext.

## The rank-embedding recipe

```agda
wf-rank-pow-pullback : WellFounded (λ x y → rank-pow x <′ rank-pow y)
wf-rank-pow-pullback = On.wellFounded rank-pow wf-<′

wf-<ᵇᵘ : WellFounded _<ᵇᵘ_
wf-<ᵇᵘ = Subrelation.wellFounded rank-pow-mono-<ᵇᵘ wf-rank-pow-pullback
```

Two steps:

1. `On.wellFounded` (= `InverseImage.wellFounded`) lifts well-
   foundedness of `_<′_` on `Ord` to the pullback `_<′_ on rank-pow`
   on `BT`.
2. `Subrelation.wellFounded` transports well-foundedness from the
   pullback to `_<ᵇᵘ_`, consuming `rank-pow-mono-<ᵇᵘ` as the
   witness that `_<ᵇᵘ_` is a sub-relation of the pullback.

The recipe is documented in `RankBrouwer.agda:55-56`:

  > wf-<ᵇʳᶠ = Subrelation.wellFounded rank-mono
  >            (InverseImage.wellFounded rank wf-<′)

`On.wellFounded` is the modern (non-deprecated) alias for
`InverseImage.wellFounded`.

## Slice 3+4 Route A gate status after this PR

| Gate | Status |
|---|---|
| 1 — tail-rank-equality discharge (cross-head rank-equal case) | open (structural blocker) |
| **2 — well-foundedness of `_<ᵇᵘ_`** | **CLOSED HERE** |
| 3 — Path-4 + further source-rule extensions | open (future-work, mechanical) |

## What this does NOT do

- Does NOT prove well-foundedness of the WfCNF-narrowed `_<ᵇᵘⁿ_`
  (PR #169) separately — follows by the same Subrelation
  transport from `wf-<ᵇᵘ` via the canonical `<ᵇᵘⁿ → <ᵇᵘ`
  projection.  Left for a thin follow-on if specifically needed.
- Does NOT add a Brouwer-rank embedding stronger than `rank-pow`
  — `rank-pow` is K-free + lands in `Ord` + already discharges
  the WF transport.  Nothing more sophisticated is needed.

## Local verification

- All four Agda lanes typecheck clean, exit 0.
- `bash tools/check-guardrails.sh proofs/agda` — 163 modules pass.
- `sh scripts/kernel-guard.sh` — PASS.

Two new names pinned in `Ordinal/Buchholz/Smoke.agda`:
`wf-rank-pow-pullback`, `wf-<ᵇᵘ`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath hyperpolymath enabled auto-merge (squash) May 30, 2026 14:59
@hyperpolymath hyperpolymath merged commit 3bb92f4 into main May 30, 2026
10 of 12 checks passed
@hyperpolymath hyperpolymath deleted the session/rank-mono-union-wf branch May 30, 2026 15:06
@github-actions
Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 58 issues detected

Severity Count
🔴 Critical 17
🟠 High 22
🟡 Medium 19

⚠️ 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": "Action rpolymath/standards/.github/workflows/governance-reusable.yml@main\n needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "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 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"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

hyperpolymath added a commit that referenced this pull request May 30, 2026
…171)

## Summary

Seam-analyst gigafan agent surfaced three documents enumerating the
ordinal-track work that referenced only the pre-2026-05-30 state.
Updates reflect the **rank-lex-jb (a)+(b)+(c) assembly completion**, the
**Path-3 source-rule enrichment**, the **RankMonoUnion architectural
realisation**, the **WfCNF wrap**, and the **Gate 2 (well-foundedness)
closure**.

## Files

| File | Update |
|---|---|
| \`docs/echo-types/MAP.adoc\` §"Ordinal" Proofs line | Extends the
per-module enumeration to mention the six new modules from PRs #165-#170
with their roles |
| \`roadmap.adoc\` Lane 3 close-out | Adds the "Slice 3+4 Route A 6-PR
arc" subsection with the (a)+(b)+(c) + Path-3 + union + WfCNF + WF
breakdown |
| \`docs/echo-types/buchholz-rank-obstruction.adoc\` per-constructor
verdict table | Updates the \`<ᵇ-+1\` row from "Slice 3 headline
remaining" to "closed for strict-head + literal-same-left sub-cases;
cross-head rank-equal (Gate 1) open with documented structural
blockers". Score footer revised to "12/13 at the per-case level" |

## Honest scope preserved

Documents what LANDED, not what's CLOSED-OPEN conceptually. The
\`<ᵇ-+1\` joint-bplus case now has **two of three sub-cases closed**
(strict-head + literal-same-left); the cross-head rank-equal sub-case
(Gate 1) is explicitly documented as still open with both pre-identified
unblock routes refuted in PR #146 AND the WfCNF-constraint refutation
also closed.

R-2026-05-18 retraction narrowings respected: no "graded comonad" /
"model-independence" / "universal property" / "conservativity
metatheorem" language added.

## Local verification

- \`bash tools/check-guardrails.sh proofs/agda\` — 163 modules pass (no
Agda touched; docs-only change).

## Test plan

- [x] No Agda touched; docs-only diff.
- [x] Foundation guardrail still passes.
- [ ] CI: governance lanes green.
- [ ] Auto-merge on green.

🤖 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