Skip to content

feat(Incompleteness): discharge the 𝗣𝗔 / 𝗜𝚺₁ Δ₁-definability axioms#833

Merged
SnO2WMaN merged 5 commits into
FormalizedFormalLogic:masterfrom
gotrevor:delta1-v431-pr
Jul 3, 2026
Merged

feat(Incompleteness): discharge the 𝗣𝗔 / 𝗜𝚺₁ Δ₁-definability axioms#833
SnO2WMaN merged 5 commits into
FormalizedFormalLogic:masterfrom
gotrevor:delta1-v431-pr

Conversation

@gotrevor

@gotrevor gotrevor commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

What

Discharges the two axioms upstream master currently ships in
FirstOrder/Incompleteness/Examples.lean (they rode in via the v4.31 port #830):

axiom ISigma1_delta1Definable : 𝗜𝚺₁.Δ₁
axiom PA_delta1Definable       : 𝗣𝗔.Δ₁

Both are now proven (the axiom keyword + attribute [instance] block are removed;
the proofs live in the new InductionSchemeDelta1.lean and are picked up as instances).

A note on review scope

This proof was Claude Code generated, and I (@gotrevor) cannot defend or
validate the ~1400 lines of InductionSchemeDelta1.lean , formally or mathematically.

What I can stand behind is mechanical and checkable:

  • It discharges the exact two axioms already in your tree (Examples.lean), under identical
    signatures
    — nothing new is asserted; the axiom keyword is simply replaced by a proof.

So the kernel vouches for internal consistency, but whether the internal Σ₁ recognizer faithfully
captures the induction schema is a mathematical judgment I'd rather leave to your review than assert
myself.

Route

𝗣𝗔 = 𝗣𝗔⁻ ∪ InductionScheme ℒₒᵣ Set.univ, 𝗜𝚺₁ = 𝗣𝗔⁻ ∪ InductionScheme ℒₒᵣ (Hierarchy 𝚺 1).
𝗣𝗔⁻ is finite (Theory.Δ₁.ofFinite); Theory.Δ₁.add/.ofEq reduce both headlines to the
single obligation (InductionScheme ℒₒᵣ C).Δ₁, established via an internal Σ₁ recognizer.

Port notes

Rebased the pre-#794 proof onto current master. Three adjustments vs #794's FirstOrder redesign:

  • model satisfaction [V ⊧ₘ* 𝗜𝚺₁][V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] (language made explicit)
  • re-introduced the SyntacticSemiformula / SyntacticFormula abbreviations (change(FirstOrder): redesign FirstOrder #794 removed the
    formula-level ones; the term-level SyntacticSemiterm/SyntacticTerm survive) — happy to inline
    Semiformula L ℕ n instead if you prefer the new convention
  • Function.comp_apply in one simp only (Rew.func now normalises the arg map to )

Verification

  • Axiom-clean:
    #print axioms PA_delta1Definable   → [propext, Classical.choice, Quot.sound]
    #print axioms ISigma1_delta1Definable → [propext, Classical.choice, Quot.sound]
    

Audit surface

The load-bearing statements are the two axiom signatures being discharged, in Examples.lean.
Supersedes the fork-internal #6 (pre-#794 base).

🤖 Generated with Claude Code

gotrevor and others added 4 commits July 2, 2026 20:19
Upstream (FormalizedFormalLogic#830) ships `𝗣𝗔.Δ₁` and `𝗜𝚺₁.Δ₁` as unproven `axiom`s in
`FirstOrder/Incompleteness/Examples.lean`. This discharges both.

New `InductionSchemeDelta1.lean` establishes `(InductionScheme ℒₒᵣ C).Δ₁`
(the schema's Δ₁-definability via an internal Σ₁ recognizer); `Theory.Δ₁.add`
/`.ofEq` assemble the two headline instances from it plus finite `𝗣𝗔⁻.Δ₁`.

Ported onto current upstream master (post-FormalizedFormalLogic#794 FirstOrder redesign). Three
adjustments were needed vs the pre-FormalizedFormalLogic#794 proof:
  * model satisfaction `[V ⊧ₘ* 𝗜𝚺₁]` → `[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]` (language made explicit)
  * re-introduced the `SyntacticSemiformula`/`SyntacticFormula` abbreviations
    (FormalizedFormalLogic#794 removed the formula-level ones; the term-level `SyntacticSemiterm`
    /`SyntacticTerm` survive in `Syntax/Predicate/Term.lean`)
  * `Function.comp_apply` in one `simp only` (`Rew.func` now normalises to `∘`)

Verified axiom-clean on current upstream:
    #print axioms PA_delta1Definable / ISigma1_delta1Definable
      → [propext, Classical.choice, Quot.sound]

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Codex's warning-cleanup commit also touched 5 files unrelated to the Δ₁
discharge. Those are pre-existing upstream mathlib/Std deprecation renames —
reverted here to keep this PR focused on the two axioms; the deprecation fixes
move to their own PR.
@SnO2WMaN

SnO2WMaN commented Jul 3, 2026

Copy link
Copy Markdown
Member

@gotrevor
The use of maxHeartbeats is a concern.
If it's strictly necessary then it can't be helped, but if possible I'd appreciate a refactor to avoid using it, as that would be better for maintainability of the code.

For any other mathematical or technical review, I'd like to defer to @iehality.

Per review feedback, remove all five `set_option maxHeartbeats` in
InductionSchemeDelta1.lean; the file now builds under the default 200k.

The three that mattered are the recognizer-inversion lemmas
`IsSigma1.and_iff/or_iff/ex_iff`. They use the same `rcases h.case <;>
simp [qq…] at h` idiom as the upstream `IsUFormula.and/or/ex`, but the simp
set additionally carried `Arithmetic.qqNLT`. In these lemmas the bounded-∀
branch only needs its outer `qqAll` tag to be seen as distinct from
`qqAnd`/`qqOr`/`qqExs`; including `qqNLT` forced the whole nested
`qqBall = ^∀(qqOr (qqNLT #0 u) q)` encoding to unfold across all eight
`rcases` branches. Dropping `qqNLT` brings them well under the default,
matching the un-annotated upstream lemmas.

The other two (`termBV_termBShift_le`, `hierarchy_of_isSigma1`) needed no
proof change; their ceilings were simply over-provisioned.

Full `lake build` green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@iehality

iehality commented Jul 3, 2026

Copy link
Copy Markdown
Member

I can't find any mathematical flaws in it. What concerns me is the use of maxHeartbeats.

@SnO2WMaN SnO2WMaN changed the title feat(Incompleteness): discharge the 𝗣𝗔 / 𝗜𝚺₁ Δ₁-definability axioms feat(Incompleteness): discharge the 𝗣𝗔 / 𝗜𝚺₁ Δ₁-definability axioms Jul 3, 2026
@SnO2WMaN SnO2WMaN merged commit 1527b59 into FormalizedFormalLogic:master Jul 3, 2026
4 checks passed
@SnO2WMaN

SnO2WMaN commented Jul 3, 2026

Copy link
Copy Markdown
Member

@gotrevor @iehality

Thanks!

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.

3 participants