feat(Incompleteness): discharge the π£π / ππΊβ Ξβ-definability axioms#9
Closed
gotrevor wants to merge 4 commits into
Closed
feat(Incompleteness): discharge the π£π / ππΊβ Ξβ-definability axioms#9gotrevor wants to merge 4 commits into
gotrevor wants to merge 4 commits into
Conversation
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.
Owner
Author
|
Submitted upstream: FormalizedFormalLogic#833 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Discharges the two
axioms upstreammastercurrently ships inFirstOrder/Incompleteness/Examples.lean(they rode in via the v4.31 port FormalizedFormalLogic#830):Both are now proven (the
axiomkeyword +attribute [instance]block are removed;the proofs live in the new
InductionSchemeDelta1.leanand 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:
Examples.lean), under identicalsignatures β nothing new is asserted; the
axiomkeyword 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/.ofEqreduce both headlines to thesingle obligation
(InductionScheme ββα΅£ C).Ξβ, established via an internal Ξ£β recognizer.Port notes
Rebased the pre-FormalizedFormalLogic#794 proof onto current
master. Three adjustments vs FormalizedFormalLogic#794's FirstOrder redesign:[V β§β* ππΊβ]β[Vβ[ββα΅£] β§* ππΊβ](language made explicit)SyntacticSemiformula/SyntacticFormulaabbreviations (change(FirstOrder): redesignFirstOrderΒ FormalizedFormalLogic/Foundation#794 removed theformula-level ones; the term-level
SyntacticSemiterm/SyntacticTermsurvive) β happy to inlineSemiformula L β ninstead if you prefer the new conventionFunction.comp_applyin onesimp only(Rew.funcnow normalises the arg map toβ)Verification
Audit surface
The load-bearing statements are the two axiom signatures being discharged, in
Examples.lean.Supersedes the fork-internal #6 (pre-FormalizedFormalLogic#794 base).
π€ Generated with Claude Code