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

7 declarations, 0 contain sorry, 0 declared as axioms

USA Mathematical Olympiad 2014, Problem 1

Let a, b, c, d be real numbers such that b-d ≥ 5 and all zeros x₁, x₂, x₃, x₄ of x⁴+ax³+bx²+cx+d are real. Find the smallest value the product $(x₁²+1)(x₂²+1)(x₃²+1)(x₄²+1)$ can take.

Imports (2)
Imported by 1 file
  1. def Usa2014P1.Objective line 29 source

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

    Statement uses: Fin, OfNat.ofNat, Nat, Real

    Proof uses: Finset.prod, Finset.univ, HAdd.hAdd, HPow.hPow

    12 instances, coercions and auxiliary constants left out.

  2. def Usa2014P1.Conditions line 31 source

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

    Statement uses: Fin, OfNat.ofNat, Nat, Real

    Proof uses: Exists, And, LE.le, HSub.hSub, Eq, Polynomial, HMul.hMul, Polynomial.X, RingHom, Polynomial.C, HAdd.hAdd, HPow.hPow

    25 instances, coercions and auxiliary constants left out.

  3. lemma Usa2014P1.construction_for_16 For construction, set all roots to 1 and check it gives 16 line 43 source

    Source comment

    For construction, set all roots to 1 and check it gives 16

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

    Statement uses: Exists, Fin, OfNat.ofNat, Nat, Real, And, Usa2014P1.Conditions, Eq, Usa2014P1.Objective

    Proof uses: Exists.intro, And.intro, id, LE.le, HSub.hSub, Polynomial, HMul.hMul, Polynomial.X, RingHom, Polynomial.C, HAdd.hAdd, HPow.hPow, Neg.neg, Mathlib.Meta.NormNum.isNat_le_true, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Mathlib.Meta.NormNum.instAtLeastTwo, Mathlib.Meta.NormNum.IsInt.to_isNat, Mathlib.Meta.NormNum.isInt_sub, Int.ofNat and 74 more

    92 instances, coercions and auxiliary constants left out.

    Tactic trace: 19 steps

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

    lemma construction_for_16 : exists x, Conditions x ∧ Objective x = 16 := by
    …

    Mentions: Usa2014P1.Conditions, Usa2014P1.Objective

  4. lemma Usa2014P1.vieta Vieta formulas for b and d (we don't actually need them for a and c) line 62 source

    Source comment

    Vieta formulas for b and d (we don't actually need them for a and c)

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

    Statement uses: Fin, OfNat.ofNat, Nat, Real, Eq, Polynomial, HMul.hMul, HSub.hSub, Polynomial.X, RingHom, Polynomial.C, HAdd.hAdd, HPow.hPow, And

    Proof uses: And.intro, of_eq_true, Eq.trans, True, congrArg, id, Eq.mp, Polynomial.eval, congr, Polynomial.eval_mul, Neg.neg, Polynomial.eval_sub, Polynomial.eval_X, Polynomial.eval_C, zero_sub, mul_neg, neg_mul, neg_neg, Polynomial.eval_add, Polynomial.eval_pow and 99 more

    134 instances, coercions and auxiliary constants left out.

    Tactic trace: 8 steps

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

    lemma vieta (x: Fin 4 → ℝ) (a : ℝ) (b : ℝ) (c : ℝ) (d : ℝ)
        (hpoly : (X - C (x 0)) * (X - C (x 1)) * (X - C (x 2)) * (X - C (x 3))
        = X^4 + C a * X^3 + C b * X^2 + C c * X + C d) :
        d = (x 0) * (x 1) * (x 2) * (x 3) ∧ b = (x 0) * (x 1) + (x 0) * (x 2)
        + (x 0) * (x 3) + (x 1) * (x 2) + (x 1) * (x 3) + (x 2) * (x 3) := by
    …
  5. lemma Usa2014P1.main_bound Now use Vieta relation to prove the key bound line 75 source

    Source comment

    Now use Vieta relation to prove the key bound

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

    Statement uses: Fin, OfNat.ofNat, Nat, Real, Usa2014P1.Conditions, LE.le, Usa2014P1.Objective

    Proof uses: Exists, And, HSub.hSub, Eq, Polynomial, HMul.hMul, Polynomial.X, RingHom, Polynomial.C, HAdd.hAdd, HPow.hPow, id, Eq.mpr, Finset.prod, Finset.univ, congrArg, And.left, Usa2014P1.vieta, And.right, Fin.prod_univ_four and 81 more

    113 instances, coercions and auxiliary constants left out.

    Tactic trace: 15 steps

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

    lemma main_bound {x} (hx : Conditions x) : 16 ≤ Objective x := by
    …

    Mentions: Usa2014P1.Conditions, Usa2014P1.Objective

  6. determine Usa2014P1.solution line 94 source

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

    Statement uses: Real

    Proof uses: OfNat.ofNat

    3 instances, coercions and auxiliary constants left out.

  7. problem Usa2014P1.usa2014_p1 line 96 source

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

    Statement uses: IsLeast, Real, Set.image, Fin, OfNat.ofNat, Nat, Usa2014P1.Objective, Set.ofPred, Usa2014P1.Conditions, Usa2014P1.solution

    Proof uses: And.intro, Membership.mem, Set, lowerBounds, of_eq_true, Eq.trans, Exists, And, Eq, True, LE.le, Usa2014P1.main_bound

    10 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

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