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

3 declarations, 0 contain sorry, 0 declared as axioms

International Mathematical Olympiad 1961, Problem 2

Let $a, b, c$ be the sides of a triangle, and $T$ its area. Prove: $$ a^2 + b^2 + c^2 \ge 4\sqrt{3} T $$ Equality holds if and only if the triangle is equilateral.

Imports (4)
Imported by 1 file
  1. lemma Imo1961P2.weitzenbock_identity Helper lemma: The key algebraic identity for Weitzenböck's inequality line 44 source

    Source documentation

    Helper lemma: The key algebraic identity for Weitzenböck's inequality. (a^2 + b^2 + c^2)^2 - 48 T^2 = 2((a^2-b^2)^2 + (b^2-c^2)^2 + (c^2-a^2)^2)

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

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

    Proof uses: Mathlib.Tactic.Ring.of_eq, Nat.rawCast, 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, rfl, Eq.mpr, id, congrArg, Eq.symm, Mathlib.Tactic.Ring.Common.pow_add, Mathlib.Tactic.Ring.Common.single_pow, Mathlib.Tactic.Ring.Common.mul_pow_mul, Mathlib.Meta.NormNum.IsNat.to_raw_eq, Mathlib.Meta.NormNum.isNat_mul, Mathlib.Meta.NormNum.IsNat.of_raw and 45 more

    59 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

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

    lemma weitzenbock_identity (a b c T : ℝ)
        (h_area : 16 * T^2 = (a + b + c) * (a + b - c) * (a - b + c) * (-a + b + c)) :
        (a^2 + b^2 + c^2)^2 - 48 * T^2 =
        2 * ((a^2 - b^2)^2 + (b^2 - c^2)^2 + (c^2 - a^2)^2) := by
    …
  2. problem Imo1961P2.imo1961_p2a IMO 1961 P2 (Inequality Case) line 57 source

    Source documentation

    IMO 1961 P2 (Inequality Case)

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

    Statement uses: Real, LT.lt, OfNat.ofNat, Eq, HMul.hMul, Nat, HPow.hPow, HAdd.hAdd, HSub.hSub, Neg.neg, GE.ge, Real.sqrt

    Proof uses: nonneg_le_nonneg_of_sq_le_sq, le_of_lt, add_pos', pow_pos, Eq.mpr, LE.le, id, congr, congrArg, Eq.trans, Nat.rawCast, 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.atom_pf, rfl, Eq.symm, Mathlib.Tactic.Ring.Common.add_mul and 78 more

    105 instances, coercions and auxiliary constants left out.

    Tactic trace: 10 steps

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

    problem imo1961_p2a (a b c T : ℝ)
        (h_pos_a : 0 < a) (h_pos_b : 0 < b) (h_pos_c : 0 < c)
        (h_area : 16 * T^2 = (a + b + c) * (a + b - c) * (a - b + c) * (-a + b + c)) :
        a^2 + b^2 + c^2 ≥ 4 * Real.sqrt 3 * T := by
    …
  3. problem Imo1961P2.imo1961_p2b IMO 1961 P2 (Equality Case) line 75 source

    Source documentation

    IMO 1961 P2 (Equality Case)

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

    Statement uses: Real, LT.lt, OfNat.ofNat, Eq, HMul.hMul, Nat, HPow.hPow, HAdd.hAdd, HSub.hSub, Neg.neg, Iff, Real.sqrt, And

    Proof uses: Iff.intro, Imo1961P2.weitzenbock_identity, Eq.mpr, id, congrArg, mul_pow, Real.sq_sqrt, Mathlib.Meta.NormNum.isNat_le_true, Mathlib.Meta.NormNum.isNat_ofNat, Nat.cast_zero, Eq.refl, Mathlib.Meta.NormNum.instAtLeastTwo, Bool, Bool.true, Mathlib.Tactic.Ring.of_eq, Nat.rawCast, Mathlib.Tactic.Ring.Common.mul_congr, Mathlib.Tactic.Ring.Common.pow_congr, Mathlib.Tactic.Ring.cast_pos, Mathlib.Tactic.Ring.Common.pow_add and 97 more

    129 instances, coercions and auxiliary constants left out.

    Tactic trace: 52 steps

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

    problem imo1961_p2b (a b c T : ℝ)
        (h_pos_a : 0 < a) (h_pos_b : 0 < b) (h_pos_c : 0 < c) (h_pos_T : 0 < T)
        (h_area : 16 * T^2 = (a + b + c) * (a + b - c) * (a - b + c) * (-a + b + c)) :
        a^2 + b^2 + c^2 = 4 * Real.sqrt 3 * T ↔ a = b ∧ b = c := by
    …