Compfiles/Imo1962P4.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
9 declarations, 0 contain sorry, 0 declared as axioms
International Mathematics Olympiad 1962, Problem 4
Solve the equation cos² x + cos² (2 * x) + cos² (3 * x) = 1.
Imported by 1 file
- def
Imo1962P4.ProblemEquationline 31 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RealProof uses:
Eq,HAdd.hAdd,HPow.hPow,Nat,Real.cos,OfNat.ofNat,HMul.hMul15 instances, coercions and auxiliary constants left out.
- determine
Imo1962P4.solutionSetline 34 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Set,RealProof uses:
Set.ofPred,Exists,Int,Or,Eq,HDiv.hDiv,HMul.hMul,HAdd.hAdd,OfNat.ofNat,Real.pi16 instances, coercions and auxiliary constants left out.
- def
Imo1962P4.altFormulaThe key to solving this problem simply is that we can rewrite the equation as a product of terms, shown inalt_formula, being equal to zero line 45 sourceSource comment
The key to solving this problem simply is that we can rewrite the equation as a product of terms, shown in `alt_formula`, being equal to zero.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RealProof uses:
HMul.hMul,Real.cos,HSub.hSub,HPow.hPow,Nat,OfNat.ofNat,HDiv.hDiv18 instances, coercions and auxiliary constants left out.
def altFormula (x : ℝ) : ℝ := …
- theorem
Imo1962P4.cos_sum_equivline 48 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq,HDiv.hDiv,HSub.hSub,HAdd.hAdd,HPow.hPow,Nat,Real.cos,OfNat.ofNat,HMul.hMul, Imo1962P4.altFormulaProof uses:
Eq.mpr,id,congr,congrArg,congrFun',Real.cos_two_mul,Real.cos_three_mul,Mathlib.Tactic.Ring.of_eq,Nat.rawCast,NNRat.rawCast,Int.rawCast,Int.negOfNat,Mathlib.Meta.NormNum.instAddMonoidWithOne',Mathlib.Tactic.Ring.Common.div_congr,Mathlib.Meta.NormNum.instAddMonoidWithOne,inferInstance,Ring,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.pow_congrand 74 more87 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1962P4.alt_equivline 53 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Iff, Imo1962P4.ProblemEquation,Eq, Imo1962P4.altFormula,OfNat.ofNatProof uses:
Eq.mpr,HAdd.hAdd,HPow.hPow,Nat,Real.cos,HMul.hMul,id,congrArg,Imo1962P4.ProblemEquation.eq_1,HDiv.hDiv,HSub.hSub,Eq.symm, Imo1962P4.cos_sum_equiv,Or,propext,div_eq_zero_iff,sub_eq_zero,of_eq_true,Eq.trans,Trueand 13 more52 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1962P4.finding_zerosline 57 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Iff,Eq, Imo1962P4.altFormula,OfNat.ofNat,Or,HPow.hPow,Nat,Real.cos,HDiv.hDiv,HMul.hMulProof uses:
Eq.mpr,id,congrFun',congrArg,Eq.trans,HSub.hSub,mul_assoc,Iff.intro,Or.inr,Real.cos_three_mul,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.Common.mul_congr,HAdd.hAdd,Nat.rawCast,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Meta.NormNum.instAtLeastTwo,Mathlib.Tactic.Ring.Common.pow_congrand 15 more71 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1962P4.solve_cos2_halfNow we can solve forxusing basic-ish trigonometry line 70 sourceSource comment
Now we can solve for `x` using basic-ish trigonometry.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Iff,Eq,HPow.hPow,Nat,Real.cos,OfNat.ofNat,HDiv.hDiv,Exists,Int,HMul.hMul,HAdd.hAdd,Real.piProof uses:
Eq.mpr,id,congrArg,Real.cos_sq,Or,congrFun',Eq.trans,False,eq_false,Mathlib.Meta.NormNum.isNat_eq_false,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Meta.NormNum.instAtLeastTwo,Nat.cast_zero,Bool,Bool.false,or_false,propext,Real.cos_eq_zero_iff,Iff.introand 74 more123 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
theorem solve_cos2_half {x : ℝ} : cos x ^ 2 = 1 / 2 ↔ ∃ k : ℤ, x = (2 * ↑k + 1) * π / 4 := by … - theorem
Imo1962P4.solve_cos3x_0line 80 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Iff,Eq,Real.cos,HMul.hMul,OfNat.ofNat,Nat,Exists,Int,HDiv.hDiv,HAdd.hAdd,Real.piProof uses:
Eq.mpr,id,congrArg,propext,Real.cos_eq_zero_iff,exists_congr,Iff.intro,Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt,Not.intro,LT.lt,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,Neg.neg,HSub.hSub,inferInstance,AddMonoidWithOne,Mathlib.Meta.NormNum.instAtLeastTwo,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,HPow.hPowand 67 more104 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- problem
Imo1962P4.imo1962_p4line 93 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Iff, Imo1962P4.ProblemEquation,Membership.mem,Set, Imo1962P4.solutionSetProof uses:
Eq.mpr,Eq, Imo1962P4.altFormula,OfNat.ofNat,id,congrArg,propext, Imo1962P4.alt_equiv,Or,HPow.hPow,Nat,Real.cos,HDiv.hDiv,HMul.hMul, Imo1962P4.finding_zeros,Exists,Int,HAdd.hAdd,Real.pi, Imo1962P4.solve_cos3x_0 and 3 more24 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.