Skip to content

Commit 1fa8129

Browse files
claudehyperpolymath
authored andcommitted
proof(ordinal): reduce Fidelity trust boundary 3→2 — construct BH target in --safe kernel
Build the Bachmann–Howard order-type target structure for real instead of postulating it. New --safe --without-K module Ordinal.Buchholz.BHTarget defines the BHNotation interface plus a postulate-free bh-notation-from : Ord → BHNotation wiring the repo's existing Brouwer order (Ord / _<′_ / wf-<′). The target order AND its well-foundedness are now proved, not assumed. Fidelity.agda is refactored to consume BHTarget and take the candidate BH height as an explicit module parameter (AtHeight) rather than an opaque whole-structure postulate. This drops Fidelity's postulate count from three to two (denotation, ordinal-upper-bound). Order-type fidelity ITSELF remains OPEN (D-2026-06-14) — a trust-boundary reduction, not a discharge of the milestone. Wired BHTarget into All.agda + Ordinal/Buchholz/Smoke.agda; updated docs/proof-debt.md (a)+(d) and Fidelity-OPEN-postulates.md. Verified: agda All.agda + Fidelity.agda exit 0; check-guardrails (189 modules) + kernel-guard both PASS. https://claude.ai/code/session_01GJatEm2TVFSTBEkKXmserJ
1 parent fe18943 commit 1fa8129

6 files changed

Lines changed: 294 additions & 144 deletions

File tree

Fidelity-OPEN-postulates.md

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,19 @@ fidelity claim, plus one genuinely-proved structural fact:
2727
term is `≤Ω ω` (the carrier lives in the ν ≤ ω fragment; the notation
2828
never names a marker above Ω_ω). This is the structural precondition
2929
of the upper bound, *not* the upper bound itself.
30+
- The **target structure** `(𝒪, _<𝒪_, wf-<𝒪)` is now **real,
31+
postulate-free** (2026-06-15): `Ordinal.Buchholz.BHTarget` constructs
32+
it from the Brouwer order (`Ord` / `_<′_` / `wf-<′`) via
33+
`bh-notation-from`, inside the `--safe` kernel (wired into `All.agda`,
34+
pinned in `Ordinal/Buchholz/Smoke.agda`). Only the candidate BH
35+
*height* remains a free input — an explicit `Fidelity.AtHeight`
36+
module parameter.
3037

3138
**What remains genuinely open.** The two pieces of real content — the
3239
**order-reflecting, height-preserving denotation** `⟦·⟧` and its
33-
**cofinality** — are postulated, together with the existence of a
34-
checked Bachmann–Howard target structure. These are the missing
35-
*objects*, not missing *plumbing*.
40+
**cofinality** — are postulated. (The checked Bachmann–Howard target
41+
*structure* is no longer assumed — see the last bullet above.) These are
42+
the missing *objects*, not missing *plumbing*.
3643

3744
**Explicit non-claim.** *Nothing in this module asserts that order type
3845
ψ₀(Ω_ω) is proven.* `fidelity` is only as strong as the three
@@ -46,18 +53,25 @@ commit.
4653

4754
## The postulates (complete list — `grep postulate Fidelity.agda`)
4855

56+
As of 2026-06-15 there are **two** (reduced from three). The former
57+
`bh-notation` postulate is **discharged**: the target structure is now
58+
constructed for real in the `--safe` module `Ordinal.Buchholz.BHTarget`
59+
(`bh-notation-from` over the Brouwer order `Ord` / `_<′_` / `wf-<′`), and
60+
the candidate BH height is an explicit `Fidelity.AtHeight` module
61+
parameter rather than an axiom.
62+
4963
| # | Name | Statement (in words) | What closes it | Owner |
5064
|---|------|----------------------|----------------|-------|
51-
| 1 | `bh-notation : BHNotation` | A checked well-founded strict order `(𝒪, _<𝒪_)` with a distinguished element `bh-height` whose initial segment is the Bachmann–Howard ordinal ψ₀(Ω_ω). | Construct (or import) a verified Bachmann–Howard ordinal structure in Agda — e.g. a checked ordinal-notation library, or a Cantor/Veblen normal-form development carried to ψ₀(Ω_ω). | **External mathematics** (owner / external) |
52-
| 2 | `denotation : DenotesBH bh-notation` | A denotation `⟦·⟧ : BT → 𝒪` that is **order-preserving** (`s <ᵇ² t → ⟦s⟧ <𝒪 ⟦t⟧`), **order-reflecting** (`⟦s⟧ <𝒪 ⟦t⟧ → s <ᵇ² t`), **cofinal** (image unbounded in `𝒪`), and **pins BH** (`⟦BH⟧ ≡ bh-height`). The height-preserving embedding `rank2` is *not*. | Define `⟦·⟧` mapping each ψ_ν / Ω_ν / + to its genuine ordinal height (not the collapsed ω-power blocks of `rank2`) and prove the four fields. This is the core order-type-correctness work (a denotational semantics for the notation faithful to `_<ᵇ²_`). | **External mathematics** (owner / external); the design route is option (a) in `D-2026-06-14`. |
53-
| 3 | `ordinal-upper-bound : ∀ {t} → WfBT t → ¬ (bh-height <𝒪 ⟦ t ⟧)` | No well-formed carrier term denotes strictly above the BH height (the ⟦·⟧-level upper half of the sandwich). | Cheap *given* postulate #2: combine the real `markers-≤ω` (every marker `≤Ω ω`) with a height calculation through the real `⟦·⟧` (markers `≤ ω` ⇒ denotation `≤ ψ₀(Ω_ω)`). It is postulated only because it quantifies over the not-yet-real `⟦·⟧`; it is **not** independent external mathematics beyond #2. | Discharged alongside / just after #2 (in-repo, once `⟦·⟧` is real). |
65+
| 1 | `denotation : DenotesBH bh-notation` | A denotation `⟦·⟧ : BT → 𝒪` (with `𝒪 = Ord`, `_<𝒪_ = _<′_`) that is **order-preserving** (`s <ᵇ² t → ⟦s⟧ <′ ⟦t⟧`), **order-reflecting** (`⟦s⟧ <′ ⟦t⟧ → s <ᵇ² t`), **cofinal** (image unbounded in `Ord`), and **pins BH** (`⟦BH⟧ ≡ bh-height`). The height-preserving embedding `rank2` is *not*. | Define `⟦·⟧` mapping each ψ_ν / Ω_ν / + to its genuine ordinal height (not the collapsed ω-power blocks of `rank2`) and prove the four fields. This is the core order-type-correctness work (a denotational semantics for the notation faithful to `_<ᵇ²_`). | **External mathematics** (owner / external); the design route is option (a) in `D-2026-06-14`. |
66+
| 2 | `ordinal-upper-bound : ∀ {t} → WfBT t → ¬ (bh-height <𝒪 ⟦ t ⟧)` | No well-formed carrier term denotes strictly above the BH height (the ⟦·⟧-level upper half of the sandwich). | Cheap *given* postulate #1: combine the real `markers-≤ω` (every marker `≤Ω ω`) with a height calculation through the real `⟦·⟧` (markers `≤ ω` ⇒ denotation `≤ ψ₀(Ω_ω)`). It is postulated only because it quantifies over the not-yet-real `⟦·⟧`; it is **not** independent external mathematics beyond #1. | Discharged alongside / just after #1 (in-repo, once `⟦·⟧` is real). |
5467

5568
## Discharge order
5669

57-
`bh-notation` (#1) and `denotation` (#2) are the genuine external
58-
content and are independent of each other only up to #2 referencing
59-
#1's `𝒪`. `ordinal-upper-bound` (#3) is downstream of #2 and in-repo
60-
once #2 lands. When all three are real, `fidelity : OrderTypeBH`
61-
becomes an unconditional theorem and a **human** may then update the
62-
appendix / decision-log / roadmap from "OPEN" to discharged — per the
63-
hard rule, this commit does not pre-empt that sign-off.
70+
`denotation` (#1) is the genuine external content — the faithful
71+
height-preserving embedding into the now-real Brouwer target.
72+
`ordinal-upper-bound` (#2) is downstream of #1 and in-repo once #1
73+
lands. When both are real, `fidelity : OrderTypeBH` becomes an
74+
unconditional theorem (for the supplied `AtHeight` height) and a
75+
**human** may then update the appendix / decision-log / roadmap from
76+
"OPEN" to discharged — per the hard rule, this commit does not pre-empt
77+
that sign-off.

docs/proof-debt.md

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,20 @@ under one of (a) discharged / (b) budgeted / (c) necessary axiom / (d) debt.
1919
`prop-factor-left-mere-surjective` (epi). This realises the axiom
2020
the `--without-K` demo under (c) only assumes — see (c).
2121

22+
- **Bachmann–Howard target structure (`BHNotation` + its
23+
well-foundedness)** — discharged 2026-06-15 in the `--safe --without-K`
24+
kernel by `proofs/agda/Ordinal/Buchholz/BHTarget.agda` (zero
25+
postulates; wired into `All.agda`, pinned in
26+
`Ordinal/Buchholz/Smoke.agda`). The abstract `BHNotation` interface and
27+
a concrete `bh-notation-from : Ord → BHNotation` are CONSTRUCTED from
28+
the repo's existing Brouwer order (`Ord` / `_<′_` / `wf-<′`), so the
29+
fidelity target's order AND its well-foundedness are now proved, not
30+
assumed. This reduces the order-type fidelity trust boundary under (d)
31+
from three postulates to two; the candidate BH HEIGHT (which `Ord`
32+
value is ψ₀(Ω_ω)) is now an explicit module parameter
33+
(`Fidelity.AtHeight`), not a postulate. Order-type fidelity ITSELF
34+
remains OPEN — see (d).
35+
2236
## (b) Budgeted — tested with refutation budget
2337

2438
- (none)
@@ -52,30 +66,39 @@ under one of (a) discharged / (b) budgeted / (c) necessary axiom / (d) debt.
5266

5367
## (d) DEBT — actively to be closed
5468

55-
- `proofs/agda/Ordinal/Buchholz/Fidelity.agda` — three top-level
56-
`postulate`s forming the trust boundary of the **order-type fidelity
57-
scaffold** (open problem `D-2026-06-14`,
69+
- `proofs/agda/Ordinal/Buchholz/Fidelity.agda`**two** top-level
70+
`postulate`s (reduced from three on 2026-06-15; see (a)) forming the
71+
trust boundary of the **order-type fidelity scaffold** (open problem
72+
`D-2026-06-14`,
5873
`docs/echo-types/decisions/ordinal-bh-order-type-fidelity-open.adoc`):
59-
- `bh-notation` — assumed checked Bachmann–Howard order structure.
6074
- `denotation` — assumed faithful, height-preserving order-embedding
61-
`⟦·⟧ : BT → 𝒪` (the missing object; **not** `rank2`, which
62-
deliberately collapses heights and is a termination measure only).
75+
`⟦·⟧ : BT → 𝒪` into the (now-real) Brouwer target (the missing
76+
object; **not** `rank2`, which deliberately collapses heights and is
77+
a termination measure only).
6378
- `ordinal-upper-bound` — the `⟦·⟧`-level upper half of the sandwich
6479
(downstream of `denotation`).
80+
- **Discharged (2026-06-15)**: the former `bh-notation` postulate (an
81+
opaque whole BH structure) is gone — the `BHNotation` interface and a
82+
real `bh-notation-from` instance now live in the `--safe` kernel
83+
module `Ordinal.Buchholz.BHTarget`, so the target order and its
84+
well-foundedness (Brouwer `_<′_` / `wf-<′`) are proved, not assumed.
85+
The candidate BH height is an explicit parameter to
86+
`Fidelity.AtHeight`, not a postulate. See (a).
6587
- **Classification**: DEBT, to be discharged when order-type fidelity
6688
is proved — these are *not* permanently-accepted axioms. Each is
6789
annotated inline with an `AXIOM:` leading comment.
6890
- **Justification / scope**: the module is quarantined — `--without-K`
6991
only, NOT imported by `All.agda` / `Smoke.agda` — so the `--safe`
70-
kernel cone depends on none of these. Nothing in the module asserts
71-
that order type ψ₀(Ω_ω) is *proven*; the status surfaces (appendix,
72-
decision log, roadmap) read "written at WF milestone; order-type
73-
fidelity OPEN".
92+
kernel cone depends on neither postulate. Nothing in the module
93+
asserts that order type ψ₀(Ω_ω) is *proven*; the status surfaces
94+
(appendix, decision log, roadmap) read "written at WF milestone;
95+
order-type fidelity OPEN".
7496
- **Citation**: `D-2026-06-14`; full per-postulate spec (statement /
7597
what closes it / owner) in `Fidelity-OPEN-postulates.md`.
7698
- **Guardrail status**: allow-listed in `tools/check-guardrails.sh`
7799
(`EXPLORATORY_EXEMPT`) and the inline `hypatia: allow` pragma at the
78-
module head.
100+
module head. (`BHTarget` is NOT exempt — it is real kernel content
101+
and passes the guardrail.)
79102

80103
## Notes
81104

proofs/agda/All.agda

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ open import Ordinal.Buchholz.RankDoubledLadderMonoPlus
159159
open import Ordinal.Buchholz.RankDoubledLadderAddPrincipal
160160
open import Ordinal.Buchholz.RankDoubledLadderMonoPlus2
161161
open import Ordinal.Buchholz.RankDoubledLadderUmbrella
162+
open import Ordinal.Buchholz.BHTarget
162163
open import Ordinal.Buchholz.RankMonoUmbrella
163164
open import Ordinal.Buchholz.RankMonoUmbrellaSlice3
164165
open import Ordinal.Buchholz.RankMonoUmbrellaSlice4
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
{-# OPTIONS --safe --without-K #-}
2+
-- SPDX-License-Identifier: MPL-2.0
3+
-- SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
5+
-- Bachmann–Howard TARGET STRUCTURE — the real, postulate-free part of
6+
-- the order-type fidelity target (open problem D-2026-06-14). 2026-06-15.
7+
--
8+
-- ## What this module IS
9+
--
10+
-- The `BHNotation` interface (an abstract well-founded strict order with
11+
-- a distinguished element) TOGETHER WITH a concrete, postulate-free
12+
-- constructor `bh-notation-from` that builds a genuine instance from the
13+
-- repo's existing Brouwer ordinal order:
14+
--
15+
-- 𝒪 := Ord (Ordinal.Brouwer)
16+
-- _<𝒪_ := _<′_ (Ordinal.Brouwer.Phase13)
17+
-- wf-<𝒪 := wf-<′ (PROVED, postulate-free, --safe)
18+
-- bh-height := the supplied Ord (the only free choice)
19+
--
20+
-- ## Why this matters (trust-boundary reduction)
21+
--
22+
-- `Fidelity.agda` previously postulated the WHOLE `bh-notation :
23+
-- BHNotation` opaquely — assuming a Set, an order, ITS WELL-FOUNDEDNESS,
24+
-- and a distinguished element. This module discharges three of those
25+
-- four obligations FOR REAL inside the --safe kernel: the target order
26+
-- and its well-foundedness are now the genuine Brouwer `_<′_` / `wf-<′`,
27+
-- not assumptions. Only the distinguished `bh-height` (i.e. WHICH `Ord`
28+
-- value is ψ₀(Ω_ω)) remains a free input — handed to `Fidelity` as an
29+
-- explicit module parameter, with its ψ₀(Ω_ω)-meaning pinned downstream
30+
-- by the (still-open) `denotation.pins-BH` field, not by fiat. See
31+
-- Fidelity-OPEN-postulates.md.
32+
--
33+
-- ## What this module is NOT
34+
--
35+
-- * It does NOT claim the Brouwer order `_<′_` HAS order type ψ₀(Ω_ω),
36+
-- nor that any particular `Ord` value IS ψ₀(Ω_ω). Brouwer ordinals
37+
-- reach far past ψ₀(Ω_ω); identifying the right value and proving the
38+
-- initial-segment order type is exactly the faithful `denotation`
39+
-- work that remains OPEN (D-2026-06-14).
40+
-- * It does NOT reuse `rank2`. The faithful denotation must be
41+
-- height-preserving; `rank2` collapses heights. `bh-notation-from`
42+
-- fixes only the ORDER, not the embedding, so it does not prejudge
43+
-- `denotation`.
44+
45+
module Ordinal.Buchholz.BHTarget where
46+
47+
open import Induction.WellFounded using (WellFounded)
48+
49+
open import Ordinal.Brouwer using (Ord)
50+
open import Ordinal.Brouwer.Phase13 using (_<′_; wf-<′)
51+
52+
----------------------------------------------------------------------
53+
-- The Bachmann–Howard target INTERFACE
54+
----------------------------------------------------------------------
55+
56+
-- An abstract well-founded strict order with a distinguished element
57+
-- `bh-height` standing for the order type ψ₀(Ω_ω). (Whether a given
58+
-- instance's `bh-height` REALLY has that initial segment is the content
59+
-- of the fidelity embedding, not of this interface.)
60+
record BHNotation : Set₁ where
61+
field
62+
𝒪 : Set
63+
_<𝒪_ : 𝒪 𝒪 Set
64+
wf-<𝒪 : WellFounded _<𝒪_
65+
bh-height : 𝒪
66+
67+
----------------------------------------------------------------------
68+
-- A concrete, postulate-free instance from the Brouwer order
69+
----------------------------------------------------------------------
70+
71+
-- Given any `Ord` value as the candidate BH height, the Brouwer order
72+
-- `(Ord, _<′_, wf-<′)` furnishes a genuine `BHNotation`. The order and
73+
-- its well-foundedness are REAL (no postulate); only the height is the
74+
-- caller's choice.
75+
bh-notation-from : Ord BHNotation
76+
bh-notation-from h = record
77+
{ 𝒪 = Ord
78+
; _<𝒪_ = _<′_
79+
; wf-<𝒪 = wf-<′
80+
; bh-height = h
81+
}

0 commit comments

Comments
 (0)