Skip to content

research(cantor-diagonalization-oq-01-oq-01-oq-02-oq-01): S6 — Easton-function closure under pointwise binary max (build pending)#17137

Draft
rjwalters wants to merge 1 commit into
mainfrom
research/cantor-easton-max-closure-1778247682
Draft

research(cantor-diagonalization-oq-01-oq-01-oq-02-oq-01): S6 — Easton-function closure under pointwise binary max (build pending)#17137
rjwalters wants to merge 1 commit into
mainfrom
research/cantor-easton-max-closure-1778247682

Conversation

@rjwalters
Copy link
Copy Markdown
Owner

Summary

Session 6 structural closure result for proofs/Proofs/CantorDiagonalizationOQ01OQ01OQ02OQ01.lean. Adds one theorem (isEastonFunction_max): the Easton-function class is closed under pointwise binary maximum. The 2 axioms (easton_permitted_realizable, easton_consistency, both True-codomain placeholders) and 0 sorries are unchanged.

The new theorem

theorem isEastonFunction_max
    {F G : Cardinal.{0} → Cardinal.{0}}
    (hF : IsEastonFunction F) (hG : IsEastonFunction G) :
    IsEastonFunction (fun κ => max (F κ) (G κ)) where
  succ_le κ hreg hℵ₀ :=
    (hF.succ_le κ hreg hℵ₀).trans (le_max_left _ _)
  monotone κ ν hκ hν hℵ₀ hκν :=
    max_le_max
      (hF.monotone κ ν hκ hν hℵ₀ hκν)
      (hG.monotone κ ν hκ hν hℵ₀ hκν)
  konig_pointwise κ hreg hℵ₀ := by
    rcases le_total (F κ) (G κ) with h | h
    · simpa [max_eq_right h] using hG.konig_pointwise κ hreg hℵ₀
    · simpa [max_eq_left h] using hF.konig_pointwise κ hreg hℵ₀

Each of the three Easton constraints is preserved by binary max via standard LinearOrder lemmas already in Mathlib:

field proof primitive
succ_le le_max_left + transitivity
monotone max_le_max
konig_pointwise le_total case split + max_eq_left/max_eq_right

Why this is real progress (and the limits thereof)

Real progress: This is qualitatively distinct from S5 (PR #16936lt_apply corollary + non-examples):

  • S5's lt_apply is a corollary of the succ_le field — restates an existing constraint.
  • S5's id_not_isEastonFunction and const_aleph0_not_isEastonFunction constrain the class from below.
  • S6's isEastonFunction_max is a closure property — gives a new witness-construction primitive. The pointwise max of two distinct Easton functions is generally not equal to either, so this builds genuinely new examples.

What this isn't: Not Phase-3b work — the two True-codomain axioms remain placeholders. Not yet the set-indexed sup generalization (Phase-3c) — that requires Cardinal.iSup and is the natural follow-up.

Mathlib API used (no new symbols)

All five lemmas are general LinearOrder API on Cardinal.{0}:

  • le_max_left : a ≤ max a b
  • max_le_max : a₁ ≤ b₁ → a₂ ≤ b₂ → max a₁ a₂ ≤ max b₁ b₂
  • le_total : a ≤ b ∨ b ≤ a
  • max_eq_left : b ≤ a → max a b = a
  • max_eq_right : a ≤ b → max a b = b

No cardinal-arithmetic-specific drift risk. The proof tactics (.trans, where syntax, rcases ... with h | h, simpa [...] using ...) are already exercised elsewhere in the same file.

Build status: pending

The worktree's proofs/.lake is a recursive self-symlink (per feedback_researcher_lake_symlink_broken.md), forcing every Docker build to fresh-clone Mathlib (~10–15 min) + cache get (~10 min) — total ~45 min. Following the convention from PR #16936 (S5) and the birthday-OQ-03 series (#16777, #16837, #16873, all build-pending drafts), this PR is opened as draft.

The 18 added lines use only tactics already exercised in the same file. Risk of build failure is low; review-by-inspection should suffice.

Conflict with PR #16936 (S5)

S5 adds IsEastonFunction.lt_apply, id_not_isEastonFunction, const_aleph0_not_isEastonFunction between isEastonFunction_nonempty and Part III. S6 adds isEastonFunction_max in the same region. The two will text-conflict on whichever lands second; mathematical content does not conflict. Either order is fine — the rebaser can place all four new theorems in any order between isEastonFunction_nonempty and the Part III header.

Files Modified

  • proofs/Proofs/CantorDiagonalizationOQ01OQ01OQ02OQ01.lean (+42, −0 lines: 1 theorem with docstring + 1 #check + 4-line header doc update; 257→299 total)
  • src/data/proofs/cantor-diagonalization-oq-01-oq-01-oq-02-oq-01/meta.json (lineCount 257→299, theoremCount 7→8 in both meta and leanFile; assumptions text + section endLines updated)
  • src/data/research/problems/cantor-diagonalization-oq-01-oq-01-oq-02-oq-01.json (Session 6 entries in builtItems/insights/progressSummary; iteration 4→6)
  • research/problems/cantor-diagonalization-oq-01-oq-01-oq-02-oq-01/knowledge.md (Session 6 narrative)

Test plan

Related

🤖 Generated by researcher-8

…e under pointwise binary max (build pending)

Adds isEastonFunction_max: if F, G are Easton functions, then so is
λ κ. max (F κ) (G κ). Each of the three Easton constraints is
preserved by binary max via standard LinearOrder lemmas:

  - succ_le: le_max_left + transitivity
  - monotone: max_le_max
  - konig_pointwise: le_total case split + max_eq_left/right

This is a structural closure result for the Easton-function class —
qualitatively distinct from S5's lt_apply corollary and non-examples.
The set-indexed sup generalization (Phase-3c) is the natural follow-up.

File: 257→299 lines, 7→8 theorems, sorries 0 unchanged, axioms 2 unchanged.
Status axiomatized unchanged.

Build pending: worktree's proofs/.lake is a recursive self-symlink
(per feedback_researcher_lake_symlink_broken.md), forcing every Docker
build to fresh-clone Mathlib (~45 min total). Following the convention
from S5 PR #16936 and the birthday-OQ-03 series, this PR is opened
as draft. The proof body uses only tactics already exercised in the
same file (.trans, where syntax, rcases, simpa); risk of build failure
is low.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@rjwalters rjwalters added the research Research agent work label May 8, 2026
rjwalters added a commit that referenced this pull request May 13, 2026
…problem.md + state.md (doc-only) (#18807)

The Lean file `proofs/Proofs/CantorDiagonalizationOQ01OQ01OQ02OQ01.lean`
has been in a stable axiomatized rest state since S4 (researcher-8,
2026-05-08): 0 sorries, 2 axioms with `True` placeholder codomain,
status="axiomatized"/badge="axiom". But `research/problems/<slug>/`
held only `knowledge.md` in git; `problem.md` and `state.md` were
untracked working-tree stubs on the main repo, never committed.

This PR commits both files for the first time, reflecting the actual
post-S4 state instead of the seeker-init placeholder.

Two new tracked files:

- `research/problems/.../problem.md` — Easton's-theorem statement
  (plain + LaTeX), classification, related-gallery cross-references
  (parent, sibling OQ-02-OQ-03, ContinuumHypothesis, child OQ-01).

- `research/problems/.../state.md` — Phase: AXIOMATIZED — Phase-3a-fix
  COMPLETE, iteration 4 (S1–S4 shipped). Tabulates the 7 axiom-free
  supporting theorems and the 2 `True`-codomain placeholder axioms.
  Documents three forward research levers:

  - Lever A (cheap, 1–2 sessions): Phase-3b — introduce explicit
    `ConsistencyOf : (Cardinal → Cardinal) → Prop` axiom and restate
    `easton_consistency` with a meaningful codomain.
  - Lever B (1 session): bridge file proving the two-sided
    characterization with sibling OQ-02-OQ-03 (excluded values).
  - Lever C (multi-session research-track): scope a flypitch-style
    Lean 4 port for class forcing.

  Also notes three unshipped DRAFT PRs (#16936 S5, #17137 S6, #17169
  S7) that have not advanced for 5 days, so future researchers know
  these are not "shipped iterations" when planning further work.

No Lean changes. Doc-only. Build: N/A.

Co-authored-by: Robb Walters <r.j.walters@gmail.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
rjwalters added a commit that referenced this pull request May 16, 2026
…ver A residual: delete parent's vacuous True-codomain axioms (slug axiom count 6 → 4; build pending — host docker meta.db I/O) (#19462)

Executes the doc-only plan from S7 PREP (#19174): refactor the parent
file CantorDiagonalizationOQ01OQ01OQ02OQ01.lean to delete the two
vacuous `True`-codomain Phase-3a placeholder axioms now that the
Phase-3b sibling (PR #19112) carries their `_strong` analogues with
non-trivial `ConsistencyOfContinuumValue` / `ConsistencyOfContinuumFunction`
codomains.

## Changes

Parent Lean file (`proofs/Proofs/CantorDiagonalizationOQ01OQ01OQ02OQ01.lean`):
- Deleted `axiom easton_permitted_realizable : ∀ κ, IsPermittedValue κ → True`
- Deleted `axiom easton_consistency : ∀ F, IsEastonFunction F → True`
- Deleted their 2 `#check` directives in Part IV
- Rewrote Part III docstring (23 LOC) as a 12-LOC pointer to the
  Phase3b companion file

**File metrics**: 257 LOC → 230 LOC (−27); axiomCount 2 → 0;
theoremCount 7 (unchanged); defCount 2 (unchanged); sorries 0
(unchanged).

**Slug-level axiom count**: 6 → 4. All 4 remaining axioms live in
the Phase3b companion file with non-trivial codomain. No vacuous
`True` codomains remain anywhere in the slug.

## External-caller audit (S7 PREP §3, re-confirmed at exec time)

`rg "easton_permitted_realizable|easton_consistency" proofs/Proofs/`
matches only:
- The parent file (definitions + `#check`, all deletable).
- The sibling `CantorDiagonalizationOQ01OQ01OQ02OQ03.lean:109` — its
  own theorem `easton_consistency` in a different namespace
  (`CantorDiagOQ01OQ01OQ02OQ03`) with a different signature
  (`Ordinal.{0} → Cardinal.{0}`). Not a caller of OQ-02-OQ-01's
  axioms; namespaces are disjoint.

**0 functional Lean callers** outside the parent file itself.

## Gallery / research JSON updates

- `src/data/proofs/.../meta.json`: `axiomCount` 2 → 0, `lineCount`
  257 → 230, `assumptions` narrative rewritten, Part III section
  renamed to `easton-axioms-pointer`, verification section line
  ranges synced.
- `src/data/research/problems/.../json`: `currentState.iteration`
  6 → 7, focus/nextAction/progressSummary rewritten, 5 builtItems
  appended, 3 insights appended, nextSteps replaced (Lever B/C
  remain).
- `research/problems/.../state.md`: phase header updated, status
  summary table refreshed (parent axiomCount 2 → 0, lineCount
  257 → 230), session-history table appended (S7 PREP + S8 ACT rows),
  attempt counts bumped 6 → 7 iterations / 2 → 3 approaches.
- `research/problems/.../sessions/2026-05-16-s8-act-lever-a-residual.md`:
  new session memo (full diff scope + build-deferred rationale).

## Build verification — DEFERRED

Attempted 4 times (~04:48–05:03 UTC). Each failed at the **Docker
image setup step (BEFORE any Lean compilation)** with:

```
ERROR: failed to build: failed to solve: write
  /var/lib/desktop-containerd/daemon/io.containerd.metadata.v1.bolt/meta.db:
  input/output error
```

Root cause: host disk is at **100% capacity** (140Mi free on 926Gi
system volume), corrupting Docker's containerd metadata DB. Affects
all concurrent researcher agents on this host (e.g. researcher-1's
LagrangeTheorem build was failing in parallel).

**Safety**: S8 is pure deletion (2 axioms + 2 `#check` directives +
docstring rewrite). No new proof obligations introduced. S6 ACT
(#19112) verified the parent file structure at 3061 jobs; deletions
cannot break the non-deleted portion. Phase3b companion (now sole
carrier of slug axioms) was Docker-verified at S6 and is unchanged.

A subsequent BUILD-VERIFY iteration (S9) will run the Docker build
once the host recovers. Consistent with the slug's existing
"build pending" PR convention (#17137, #17169).

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

Co-authored-by: Robb Walters <r.j.walters@gmail.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

research Research agent work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant