FormalConjectures/Paper/FusibleNumber.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1
4 declarations, 1 contain sorry, 0 declared as axioms
Main conjecture on fusible numbers
References:
- Fusible numbers and Peano Arithmetic, by Jeff Erickson, Gabriel Nivasch, and Junyan Xu.
- Fusible numbers and Peano Arithmetic, Logical Methods in Computer Science, Volume 18, Issue 3 (July 28, 2022).
Imports (1)
- inductive
FusibleNumber.IsFusibleA rational number is fusible if it belongs to the smallest set containing $0$ and closed under the operation $$ a \sim b = \frac{a + b + 1}{2} $$ whenever $|a-b| < 1$ line 42 sourceSource documentation
A rational number is fusible if it belongs to the smallest set containing $0$ and closed under the operation $$ a \sim b = \frac{a + b + 1}{2} $$ whenever $|a-b| < 1$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Ratinductive IsFusible : ℚ → Prop | zero : IsFusible 0 | fuse (a b : ℚ) : IsFusible a → IsFusible b → |a - b| < 1 → IsFusible ((a + b + 1) / 2) /-- The rational number $1/2$ is fusible. -/ @[category test, AMS 5]
- theorem
FusibleNumber.isFusible_one_halfThe rational number $1/2$ is fusible line 48 sourceSource documentation
The rational number $1/2$ is fusible.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: FusibleNumber.IsFusible,
HDiv.hDiv,Rat,OfNat.ofNatProof uses:
HAdd.hAdd,FusibleNumber.IsFusible.fuse,FusibleNumber.IsFusible.zero,Mathlib.Meta.NormNum.isNat_lt_true,abs,HSub.hSub,Mathlib.Meta.NormNum.isNat_abs_nonneg,Mathlib.Meta.NormNum.IsInt.to_isNat,Mathlib.Meta.NormNum.isInt_sub,Int.ofNat,Eq.refl,Mathlib.Meta.NormNum.IsNat.to_isInt,Mathlib.Meta.NormNum.isNat_ofNat,Int,Bool,Bool.false,Eq.mp,Eq.trans,congrArg,Mathlib.Meta.NormNum.IsNNRat.to_eqand 9 more45 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
theorem isFusible_one_half : IsFusible (1 / 2 : ℚ) := by …
Mentions: FusibleNumber.IsFusible
- theorem
FusibleNumber.isFusible_oneThe rational number $1$ is fusible line 55 sourceSource documentation
The rational number $1$ is fusible.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: FusibleNumber.IsFusible,
OfNat.ofNat,RatProof uses:
HDiv.hDiv,HAdd.hAdd,FusibleNumber.IsFusible.fuse, FusibleNumber.isFusible_one_half,Mathlib.Meta.NormNum.isNat_lt_true,abs,HSub.hSub,Mathlib.Meta.NormNum.isNat_abs_nonneg,Mathlib.Meta.NormNum.IsInt.to_isNat,Mathlib.Meta.NormNum.IsRat.to_isInt,Int.ofNat,Mathlib.Meta.NormNum.isRat_sub,Eq.refl,Mathlib.Meta.NormNum.IsNNRat.to_isRat,Mathlib.Meta.NormNum.isNNRat_div,Mathlib.Meta.NormNum.isNNRat_mul,HMul.hMul,Inv.inv,Mathlib.Meta.NormNum.IsNat.to_isNNRat,Mathlib.Meta.NormNum.isNat_ofNatand 13 more42 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
theorem isFusible_one : IsFusible (1 : ℚ) := by …
Mentions: FusibleNumber.IsFusible
- theorem
FusibleNumber.conj_7_1Documented declaration: conj_7_1 sorry line 72 sourceSource documentation
If
xis a fusible number andyis its successor, then the interval[x + 1, y + 1)can be divided into intervals[ℓₙ, ℓₙ₊₁), such that the fusible numbers in[ℓₙ, ℓₙ₊₁)are obtained by fusing then + 1st successor ofxwith a fusible number. This formalization differs from Conjecture 7.1 in the paper in four ways: (1) it is obtained from Conjecture 7.1 by plugging inn + 1inton, which simplifies the expressions and removes the need to assumen ≥ 1; (2) then + 1st successors^(n+1)(x)is replaced by the explicit valuex + (2 - 1 / 2 ^ n) * m; (3) instead of definingyto be the successor ofx, we assert that there is no fusible number strictly betweenxandy; (4) instead of using∃ z, IsFusible z ∧ q = s^(n+1)(x) ~ zwe use the value ofzdetermined by the equality, namelyz = 2 * q - 1 - s^(n+1)(x), and it is easy to seez ∈ [x + 1 - m / 2 ^ n, x + 1)as required.depends on sorry what this means
Statement uses:
Rat,Nat, FusibleNumber.IsFusible,LT.lt,Not,Membership.mem,Set,Set.Ioo,HSub.hSub,HAdd.hAdd,OfNat.ofNat,HDiv.hDiv,HPow.hPow,Set.Ico,HMul.hMulProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous32 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem conj_7_1 (x y q : ℚ) (n : ℕ) (fus_x : IsFusible x) (fus_y : IsFusible y) (lt : x < y) (nmem_Ioo : ∀ z, IsFusible z → z ∉ Set.Ioo x y) : let m := y - x …Mentions: FusibleNumber.IsFusible