Compfiles/Usa1972P4.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 compfiles documentation, Pinned compfiles corpus index
10 declarations, 0 contain sorry, 0 declared as axioms
USA Mathematical Olympiad 1972, Problem 4
Let k be the real cube root of 2. Find integers A, B, C, a, b, c such that
|(Ax² + Bx + C)/(ax² + bx + c) − k| < |x − k|
for all non-negative rational numbers x.
Imports (10)
Imported by 1 file
- abbrev
Usa1972P4.IsSolutionDocumented declaration: IsSolution line 40 sourceSource documentation
The property that the integers
A, B, C, a, b, csolve the problem for the real cube rootkof2: the rational function(Ax² + Bx + C)/(ax² + bx + c)approximateskstrictly better thanxdoes, for every non-negative rational numberx.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Int,RealProof uses:
Rat,LE.le,OfNat.ofNat,LT.lt,abs,HSub.hSub,HDiv.hDiv,HAdd.hAdd,HMul.hMul,HPow.hPow,Nat23 instances, coercions and auxiliary constants left out.
abbrev IsSolution (A B C a b c : ℤ) (k : ℝ) : Prop := …
- lemma
Usa1972P4.rat_cube_ne_twoThere is no rational number whose cube equals2line 62 sourceSource documentation
There is no rational number whose cube equals
2.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Rat,Ne,HPow.hPow,Nat,OfNat.ofNatProof uses:
Eq,Rat.den,cast,Not,Eq.symm,Eq.trans,congrArg,Nat.cast_zero,Rat.den_nz,Int,Rat.num,HMul.hMul,congr,Nat.cast_mul,Nat.cast_pow,Int.cast_mul,Int.cast_ofNat,Int.cast_pow,congrFun',Int.cast_natCastand 111 more146 instances, coercions and auxiliary constants left out.
Tactic trace: 47 steps
Open to load the checked before-and-after goal states.
lemma rat_cube_ne_two (q : ℚ) : q ^ 3 ≠ 2 := by …
- lemma
Usa1972P4.ratCast_ne_of_cube_eq_twoA rational number is never equal to the real cube root of2line 105 sourceSource documentation
A rational number is never equal to the real cube root of
2.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq,HPow.hPow,Nat,OfNat.ofNat,Rat,NeProof uses:
False,Eq.mpr,id,congrFun',congrArg,Rat.cast_pow, Usa1972P4.rat_cube_ne_two,cast,Eq.trans,Eq.symm,Rat.cast_ofNat42 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
lemma ratCast_ne_of_cube_eq_two {k : ℝ} (hk : k ^ 3 = 2) (q : ℚ) : (q : ℝ) ≠ k := by … - lemma
Usa1972P4.cube_eq_two_factorThe key factorization, usingk³ = 2:(2x² + 2x + 2) − (x² + 2x + 2)k = (x − k)((2 − k)x + 2 − k²)line 114 sourceSource documentation
The key factorization, using
k³ = 2:(2x² + 2x + 2) − (x² + 2x + 2)k = (x − k)((2 − k)x + 2 − k²).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq,HPow.hPow,Nat,OfNat.ofNat,HSub.hSub,HAdd.hAdd,HMul.hMulProof uses:
Mathlib.Tactic.LinearCombination.eq_of_eq,Eq.symm,Mathlib.Tactic.LinearCombination.eq_rearrange,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.sub_congr,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,Mathlib.Meta.NormNum.instAddMonoidWithOne,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Meta.NormNum.instAtLeastTwo,Mathlib.Tactic.Ring.Common.pow_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfland 42 more79 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
lemma cube_eq_two_factor {k x : ℝ} (hk : k ^ 3 = 2) : 2 * x ^ 2 + 2 * x + 2 - (x ^ 2 + 2 * x + 2) * k = (x - k) * ((2 - k) * x + 2 - k ^ 2) := by … - lemma
Usa1972P4.one_lt_of_cube_eq_twoline 119 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq,HPow.hPow,Nat,OfNat.ofNat,LT.ltProof uses:
Odd,Exists.intro,HAdd.hAdd,HMul.hMul,rfl,Eq.mpr,id,congrArg,Eq.symm,propext,Odd.pow_lt_pow,one_pow,Mathlib.Meta.NormNum.isNat_lt_true,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_one,Eq.refl,Mathlib.Meta.NormNum.instAtLeastTwo,Bool,Bool.false65 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1972P4.lt_two_of_cube_eq_twoline 124 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq,HPow.hPow,Nat,OfNat.ofNat,LT.ltProof uses:
Odd,Exists.intro,HAdd.hAdd,HMul.hMul,rfl,Eq.mpr,id,congrArg,Eq.symm,propext,Odd.pow_lt_pow,Mathlib.Meta.NormNum.isNat_lt_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Meta.NormNum.instAtLeastTwo,Mathlib.Meta.NormNum.isNat_pow,Mathlib.Meta.NormNum.IsNatPowT.run,Mathlib.Meta.NormNum.IsNatPowT.bit1,Bool,Bool.false60 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1972P4.sq_lt_two_of_cube_eq_twoline 129 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq,HPow.hPow,Nat,OfNat.ofNat,LT.ltProof uses: Usa1972P4.one_lt_of_cube_eq_two,
LT.lt.trans,zero_lt_one,HMul.hMul,Mathlib.Tactic.Ring.of_eq,HAdd.hAdd,Nat.rawCast,Mathlib.Tactic.Ring.Common.pow_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,id,congrArg,Eq.symm,Eq.refl,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Mathlib.Tactic.Ring.Common.pow_add,Mathlib.Tactic.Ring.Common.single_pow,Mathlib.Tactic.Ring.Common.mul_pow_muland 25 more73 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1972P4.main_inequalityWith(A, B, C, a, b, c) = (2, 2, 2, 1, 2, 2), the required inequality holds for every non-negative rational numberxline 141 sourceSource documentation
With
(A, B, C, a, b, c) = (2, 2, 2, 1, 2, 2), the required inequality holds for every non-negative rational numberx.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq,HPow.hPow,Nat,OfNat.ofNat,Rat,LE.le,LT.lt,abs,HSub.hSub,HDiv.hDiv,HAdd.hAdd,HMul.hMulProof uses:
LT.lt.trans,zero_lt_one, Usa1972P4.one_lt_of_cube_eq_two, Usa1972P4.lt_two_of_cube_eq_two, Usa1972P4.sq_lt_two_of_cube_eq_two,cast,Eq.trans,congrFun',congrArg,Eq.symm,Nat.cast_zero,sq_nonneg,lt_of_not_ge,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,Neg.neg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Int.rawCast,inferInstanceand 85 more150 instances, coercions and auxiliary constants left out.
Tactic trace: 22 steps
Open to load the checked before-and-after goal states.
lemma main_inequality {k : ℝ} (hk : k ^ 3 = 2) (x : ℚ) (hx : 0 ≤ x) : |(2 * (x : ℝ) ^ 2 + 2 * (x : ℝ) + 2) / ((x : ℝ) ^ 2 + 2 * (x : ℝ) + 2) - k| < |(x : ℝ) - k| := by … - determine
Usa1972P4.solutionline 174 sourceno axioms what this means
Statement uses:
Prod,IntProof uses:
Prod.mk,OfNat.ofNat1 instances, coercions and auxiliary constants left out.
- problem
Usa1972P4.usa1972_p4line 176 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq,HPow.hPow,Nat,OfNat.ofNat,Usa1972P4.usa1972_p4.match_1,Prod,Int, Usa1972P4.solution, Usa1972P4.IsSolutionProof uses:
Rat,LE.le,Eq.mpr,LT.lt,abs,HSub.hSub,HDiv.hDiv,HAdd.hAdd,HMul.hMul,id,congrFun',congrArg,congr,Int.cast_ofNat,Eq.trans,Int.cast_one,one_mul, Usa1972P4.main_inequality46 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.