Compfiles/Imo1962P4.lean

GitHub source file

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.

Imports (2)
Imported by 1 file
  1. def Imo1962P4.ProblemEquation line 31 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Real

    Proof uses: Eq, HAdd.hAdd, HPow.hPow, Nat, Real.cos, OfNat.ofNat, HMul.hMul

    15 instances, coercions and auxiliary constants left out.

  2. determine Imo1962P4.solutionSet line 34 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Set, Real

    Proof uses: Set.ofPred, Exists, Int, Or, Eq, HDiv.hDiv, HMul.hMul, HAdd.hAdd, OfNat.ofNat, Real.pi

    16 instances, coercions and auxiliary constants left out.

  3. def Imo1962P4.altFormula 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 line 45 source

    Source 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: Real

    Proof uses: HMul.hMul, Real.cos, HSub.hSub, HPow.hPow, Nat, OfNat.ofNat, HDiv.hDiv

    18 instances, coercions and auxiliary constants left out.

    def altFormula (x : ℝ) : ℝ :=
    …
  4. theorem Imo1962P4.cos_sum_equiv line 48 source

    standard 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.altFormula

    Proof 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_congr and 74 more

    87 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

    Open to load the checked before-and-after goal states.

  5. theorem Imo1962P4.alt_equiv line 53 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Real, Iff, Imo1962P4.ProblemEquation, Eq, Imo1962P4.altFormula, OfNat.ofNat

    Proof 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, True and 13 more

    52 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

    Open to load the checked before-and-after goal states.

  6. theorem Imo1962P4.finding_zeros line 57 source

    standard 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.hMul

    Proof 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_congr and 15 more

    71 instances, coercions and auxiliary constants left out.

    Tactic trace: 12 steps

    Open to load the checked before-and-after goal states.

  7. theorem Imo1962P4.solve_cos2_half Now we can solve for x using basic-ish trigonometry line 70 source

    Source 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.pi

    Proof 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.intro and 74 more

    123 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
    …
  8. theorem Imo1962P4.solve_cos3x_0 line 80 source

    standard 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.pi

    Proof 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.hPow and 67 more

    104 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

    Open to load the checked before-and-after goal states.

  9. problem Imo1962P4.imo1962_p4 line 93 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Real, Iff, Imo1962P4.ProblemEquation, Membership.mem, Set, Imo1962P4.solutionSet

    Proof 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 more

    24 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

    Open to load the checked before-and-after goal states.