Compfiles/Imo1959P3.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

6 declarations, 0 contain sorry, 0 declared as axioms

International Mathematical Olympiad 1959, Problem 3

Let a, b, c be real numbers. Given the equation for cos x:

a cos²x + b cos x + c = 0,

form a quadratic equation in cos 2x whose roots are the same values of x. Compare the equations in cos x and cos 2x for a = 4, b = 2, c = -1.

Imports (2)
Imported by 1 file
  1. determine Imo1959P3.formedQuadratic Documented declaration: formedQuadratic line 30 source

    Source documentation

    The coefficients of the quadratic equation in cos (2 * x) formed from a * cos x ^ 2 + b * cos x + c = 0: writing cos (2 * x) = 2 * cos x ^ 2 - 1 and eliminating the odd power of cos x by squaring.

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

    Statement uses: Real, Prod

    Proof uses: Prod.mk, HPow.hPow, Nat, OfNat.ofNat, HSub.hSub, HAdd.hAdd, HMul.hMul

    15 instances, coercions and auxiliary constants left out.

    determine formedQuadratic (a b c : ℝ) : ℝ × ℝ × ℝ :=
    …
  2. def Imo1959P3.formedQuadraticEval The formed quadratic evaluated at t, i.e. the quadratic with coefficients formedQuadratic a b c applied to t line 35 source

    Source documentation

    The formed quadratic evaluated at t, i.e. the quadratic with coefficients formedQuadratic a b c applied to t.

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

    Statement uses: Real

    Proof uses: HAdd.hAdd, HMul.hMul, Prod.fst, Prod, Imo1959P3.formedQuadratic, HPow.hPow, Nat, OfNat.ofNat, Prod.snd

    9 instances, coercions and auxiliary constants left out.

    def formedQuadraticEval (a b c : ℝ) (t : ℝ) : ℝ :=
    …
  3. lemma Imo1959P3.sq_b_mul_cos Squaring the rearranged equation b * cos x = -(a * cos x ^ 2 + c) eliminates the odd power of cos x line 43 source

    Source documentation

    Squaring the rearranged equation b * cos x = -(a * cos x ^ 2 + c) eliminates the odd power of cos x.

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

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

    Proof uses: Neg.neg, Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt, Not.intro, LT.lt, Mathlib.Tactic.Linarith.lt_irrefl, Eq.mp, HSub.hSub, congrArg, Mathlib.Tactic.Ring.of_eq, Mathlib.Tactic.Ring.Common.add_congr, Nat.rawCast, Int.rawCast, inferInstance, Ring, Int.negOfNat, Mathlib.Meta.NormNum.instAddMonoidWithOne, Mathlib.Tactic.Ring.Common.neg_congr, Mathlib.Tactic.Ring.Common.sub_congr, Mathlib.Tactic.Ring.Common.mul_congr, Mathlib.Tactic.Ring.Common.atom_pf and 59 more

    70 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

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

    lemma sq_b_mul_cos (a b c x : ℝ) (h : a * cos x ^ 2 + b * cos x + c = 0) :
        b ^ 2 * cos x ^ 2 = (a * cos x ^ 2 + c) ^ 2 := by
    …

    Mentions: h

  4. lemma Imo1959P3.formedQuadratic_cos_two_mul The formed quadratic evaluated at cos (2 * x), expressed back in terms of cos x via cos (2 * x) = 2 * cos x ^ 2 - 1 line 51 source

    Source documentation

    The formed quadratic evaluated at cos (2 * x), expressed back in terms of cos x via cos (2 * x) = 2 * cos x ^ 2 - 1.

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

    Statement uses: Real, Eq, Imo1959P3.formedQuadraticEval, Real.cos, HMul.hMul, OfNat.ofNat, Nat, HSub.hSub, HPow.hPow, HAdd.hAdd

    Proof uses: id, Prod.fst, Prod, Imo1959P3.formedQuadratic, Prod.snd, Eq.mpr, Prod.mk, congrArg, Real.cos_two_mul, Mathlib.Tactic.Ring.of_eq, Nat.rawCast, Int.rawCast, inferInstance, Ring, Int.negOfNat, Mathlib.Tactic.Ring.Common.add_congr, Mathlib.Meta.NormNum.instAddMonoidWithOne, Mathlib.Tactic.Ring.Common.mul_congr, Mathlib.Tactic.Ring.Common.pow_congr, Mathlib.Tactic.Ring.Common.atom_pf and 52 more

    61 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

    lemma formedQuadratic_cos_two_mul (a b c x : ℝ) :
        formedQuadraticEval a b c (cos (2 * x)) =
          4 * ((a * cos x ^ 2 + c) ^ 2 - b ^ 2 * cos x ^ 2) := by
    …

    Mentions: Imo1959P3.formedQuadraticEval

  5. problem Imo1959P3.imo1959_p3 line 60 source

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

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

    Proof uses: Eq.mpr, HSub.hSub, id, congrArg, Imo1959P3.formedQuadratic_cos_two_mul, Imo1959P3.sq_b_mul_cos, Mathlib.Tactic.Ring.of_eq, Mathlib.Tactic.Ring.Common.mul_congr, Nat.rawCast, Mathlib.Tactic.Ring.cast_pos, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Mathlib.Meta.NormNum.instAtLeastTwo, Mathlib.Tactic.Ring.Common.sub_congr, Mathlib.Tactic.Ring.Common.pow_congr, Mathlib.Tactic.Ring.Common.add_congr, Mathlib.Tactic.Ring.Common.atom_pf, rfl, Eq.symm, Mathlib.Tactic.Ring.Common.pow_add and 48 more

    57 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  6. problem Imo1959P3.imo1959_p3_comparison For a = 4, b = 2, c = -1 the formed equation in cos 2x is four times the original equation in cos x: the two equations are the same line 67 source

    Source documentation

    For a = 4, b = 2, c = -1 the formed equation in cos 2x is four times the original equation in cos x: the two equations are the same.

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

    Statement uses: Real, Eq, Imo1959P3.formedQuadraticEval, OfNat.ofNat, Nat, Neg.neg, HMul.hMul, HSub.hSub, HAdd.hAdd, HPow.hPow

    Proof uses: id, Prod.fst, Prod, Imo1959P3.formedQuadratic, Prod.snd, Mathlib.Tactic.Ring.of_eq, Prod.mk, Int.rawCast, inferInstance, Ring, Int.negOfNat, Nat.rawCast, Mathlib.Tactic.Ring.Common.add_congr, Mathlib.Tactic.Ring.Common.mul_congr, Mathlib.Tactic.Ring.Common.pow_congr, Mathlib.Tactic.Ring.cast_pos, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Mathlib.Meta.NormNum.instAtLeastTwo, Mathlib.Tactic.Ring.Common.pow_add and 49 more

    65 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    problem imo1959_p3_comparison (t : ℝ) :
        formedQuadraticEval 4 2 (-1) t = 4 * (4 * t ^ 2 + 2 * t - 1) := by
    …

    Mentions: Imo1959P3.formedQuadraticEval