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

8 declarations, 0 contain sorry, 0 declared as axioms

USA Mathematical Olympiad 2004, Problem 5

Prove that for a,b,c > 0, (a⁵ - a² + 3) (b⁵ - b² + 3) (c⁵ - c² + 3) ≥ (a + b + c)³.

Imports (2)
Imported by 1 file
  1. lemma Usa2004P5.poly_bound Main estimate that lets us convert into Holder line 31 source

    Source comment

    Main estimate that lets us convert into Holder

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

    Statement uses: Real, LT.lt, OfNat.ofNat, LE.le, HAdd.hAdd, HPow.hPow, Nat, HSub.hSub

    Proof uses: GE.ge, Even.pow_nonneg, HMul.hMul, even_two_mul, le_of_lt, mul_pos, add_pos', Mathlib.Meta.Positivity.pos_of_isNat, Mathlib.Meta.NormNum.isNat_ofNat, Nat.cast_one, Eq.refl, Bool, Nat.ble, pow_pos, le_of_not_gt, Mathlib.Tactic.Linarith.lt_irrefl, Eq.mp, congrArg, Mathlib.Tactic.Ring.of_eq, Mathlib.Tactic.Ring.Common.add_congr and 69 more

    114 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

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

    lemma poly_bound {x : ℝ} (hx : 0 < x) : x^3 + 2 ≤ x^5 - x^2 + 3 := by
    …
  2. lemma Usa2004P5.poly_nonneg Documented declaration: poly_nonneg line 39 source

    Source comment

    It's not obvious a priori that x⁵ - x² + 3 is even positive and this will make life annoying later when we try to multiply ineq's together Thus, define a corollary that follows from the above

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

    Statement uses: Real, LT.lt, OfNat.ofNat, LE.le, HAdd.hAdd, HSub.hSub, HPow.hPow, Nat

    Proof uses: LE.le.trans, le_of_lt, add_pos', pow_pos, Mathlib.Meta.Positivity.pos_of_isNat, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Mathlib.Meta.NormNum.instAtLeastTwo, Bool, Nat.ble, Usa2004P5.poly_bound

    53 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    lemma poly_nonneg {x : ℝ} (hx : 0 < x) : 0 ≤ x^5 - x^2 + 3 := by
    …
  3. lemma Usa2004P5.multiplied_bound Multiply these all together to get to the intermediate (a³+2)(b³+2)(c³+2) line 43 source

    Source comment

    Multiply these all together to get to the intermediate (a³+2)(b³+2)(c³+2)

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

    Statement uses: Real, LT.lt, OfNat.ofNat, LE.le, HMul.hMul, HAdd.hAdd, HPow.hPow, Nat, HSub.hSub

    Proof uses: mul_le_mul, Usa2004P5.poly_bound, le_of_lt, add_pos', pow_pos, Mathlib.Meta.Positivity.pos_of_isNat, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Mathlib.Meta.NormNum.instAtLeastTwo, Bool, Nat.ble, Usa2004P5.poly_nonneg, mul_nonneg

    60 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

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

    lemma multiplied_bound {a b c : ℝ} (ha : 0 < a) (hb : 0 < b) (hc : 0 < c) :
        (a^3 + 2) * (b^3 + 2) * (c^3 + 2) ≤ (a^5 - a^2 + 3) * (b^5 - b^2 + 3) * (c^5 - c^2 + 3) := by
    …
  4. lemma Usa2004P5.holder_conjugate_3 3-variable Holder inequality (the painful part...) line 52 source

    Source comment

    3-variable Holder inequality (the painful part...)

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

    Statement uses: Real.HolderConjugate, HDiv.hDiv, Real, OfNat.ofNat, Nat

    Proof uses: Eq.mpr, And, LT.lt, Eq, HAdd.hAdd, Inv.inv, id, congrArg, propext, Real.holderConjugate_iff, of_eq_true, Eq.trans, True, congr, eq_true, Mathlib.Meta.NormNum.isNNRat_lt_true, Mathlib.Meta.NormNum.IsNat.to_isNNRat, Mathlib.Meta.NormNum.isNat_ofNat, Nat.cast_one, Mathlib.Meta.NormNum.isNNRat_div and 14 more

    46 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    lemma holder_conjugate_3 : Real.HolderConjugate (3/2 : ℝ) 3 := by
    …
  5. theorem Usa2004P5.triple_holder line 55 source

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

    Statement uses: Finset, Nat, NNReal, LE.le, HPow.hPow, Finset.sum, HMul.hMul, OfNat.ofNat

    Proof uses: Real, HDiv.hDiv, NNReal.inner_le_Lp_mul_Lq, Usa2004P5.holder_conjugate_3, Real.HolderConjugate.two_two, NNReal.rpow_le_rpow, Mathlib.Meta.NormNum.isNat_le_true, Mathlib.Meta.NormNum.isNat_ofNat, Nat.cast_zero, Eq.refl, Mathlib.Meta.NormNum.instAtLeastTwo, Bool, Bool.true, Eq.mpr, id, Eq, congr, congrArg, Finset.sum_congr, Membership.mem and 20 more

    79 instances, coercions and auxiliary constants left out.

    Tactic trace: 11 steps

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

  6. lemma Usa2004P5.key_holder line 72 source

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

    Statement uses: NNReal, LE.le, HPow.hPow, Nat, HAdd.hAdd, OfNat.ofNat, HMul.hMul

    Proof uses: Finset.sum, Finset.range, Unit, Usa2004P5.triple_holder, Eq.mpr, eq_of_heq, LE, Eq, HEq, Eq.refl, HEq.refl, Eq.symm, Mathlib.Tactic.Ring.of_eq, Nat.rawCast, Mathlib.Tactic.Ring.Common.pow_congr, Mathlib.Tactic.Ring.Common.add_congr, Mathlib.Tactic.Ring.Common.atom_pf, rfl, id, congrArg and 45 more

    72 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

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

  7. lemma Usa2004P5.key_holder_real line 83 source

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

    Statement uses: Real, LT.lt, OfNat.ofNat, LE.le, HPow.hPow, Nat, HAdd.hAdd, HMul.hMul

    Proof uses: Eq.mpr, Real.toNNReal, id, Eq, congrArg, Eq.symm, Real.coe_toNNReal, LT.lt.le, Usa2004P5.key_holder

    36 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  8. problem Usa2004P5.usa2004_p5 line 90 source

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

    Statement uses: Real, LT.lt, OfNat.ofNat, LE.le, HPow.hPow, Nat, HAdd.hAdd, HMul.hMul, HSub.hSub

    Proof uses: LE.le.trans, Usa2004P5.key_holder_real, Usa2004P5.multiplied_bound

    38 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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