Wikipedia/IdonealCompleteness: prove knownIdonealNumbers_are_idoneal#4314
Merged
Merged
Conversation
|
👋 This is an automated welcome message. 🤖 A few friendly reminders while the review gets started:
Thanks again for helping improve Formal Conjectures. |
Proves all 65 known idoneal numbers are idoneal. IsIdoneal's unbounded ∃ a b c is reduced to a bounded decidable double-search (helper exists_triple_iff_bounded: for fixed a,b ≤ n the constraint pins c = (n - a*b)/(a+b)), then fin_cases over the 65 numbers + native_decide. native_decide is required (plain decide hits maxRecDepth on the bounded search), so axioms include Lean.ofReduceBool alongside [propext, Classical.choice, Quot.sound]; no sorryAx. Drafted with AI assistance and machine-checked by the Lean kernel.
4a9e024 to
2df5dcf
Compare
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.
Proves
knownIdonealNumbers_are_idoneal— all 65 known idoneal numbers are in fact idoneal.The work is making the predicate decidable.
IsIdoneal nis0 < n ∧ ¬ ∃ a b c, 0 < a < b < c ∧ n = a*b + b*c + a*c, and that existential ranges over unboundedℕ. The helperexists_triple_iff_boundedreduces it to a bounded double-search: for a fixed paira, b ≤ nthe constraint pinsc = (n − a*b)/(a+b)exactly, so onlya, bare searched (overFinset.range (n+1)), witha, b ≤ nfalling out ofnlinarithon0 < a < b < c. The main proof thenfin_casesover the 65 numbers, peels off the trivial0 < n, and discharges each bounded search.This one needs
native_decide: plaindecideis infeasible — the kernel'sFinsetreduction hitsmaxRecDepthon a bounded search as small as 100×100, long before then = 1848cases. So#print axiomsincludesLean.ofReduceBool(the compiler-checked-computation axiom) alongside the usual[propext, Classical.choice, Quot.sound]; nosorryAx. The file builds in ~13s.Only
knownIdonealNumbers_are_idonealis touched; the research-openidoneal_numbers_completenesskeeps itssorry.Drafted with AI assistance and machine-checked by the Lean kernel.