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

USA Mathematical Olympiad 2013, Problem 4

Find all real numbers x, y, z ≥ 1 satisfying

min(√(x + xyz), √(y + xyz), √(z + xyz)) = √(x - 1) + √(y - 1) + √(z - 1).

Imports (2)
Imported by 1 file
  1. def Usa2013P4.Distinguished Documented declaration: Distinguished line 32 source

    Source documentation

    The condition that x is the "distinguished" coordinate of a solution (the coordinate at which the minimum of the left-hand side is attained): the other two shifted coordinates y - 1, z - 1 multiply to 1, and x - 1 is the reciprocal of (√(y - 1) + √(z - 1))².

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

    Statement uses: Real

    Proof uses: And, Eq, HMul.hMul, HSub.hSub, OfNat.ofNat, HPow.hPow, Nat, HAdd.hAdd, Real.sqrt

    13 instances, coercions and auxiliary constants left out.

    def Distinguished (x y z : ℝ) : Prop :=
    …
  2. lemma Usa2013P4.key_identity The key algebraic identity: the difference between (1+u)(1+(1+v)(1+w)) and (√u + √v + √w)² is a sum of two squares line 56 source

    Source documentation

    The key algebraic identity: the difference between (1+u)(1+(1+v)(1+w)) and (√u + √v + √w)² is a sum of two squares.

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

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

    Proof uses: 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, Eq.mpr, id, congrArg, Eq.symm, Eq.refl, Mathlib.Tactic.Ring.Common.add_pf_add_lt, Mathlib.Tactic.Ring.Common.add_pf_zero_add, Mathlib.Tactic.Ring.cast_pos, Mathlib.Meta.NormNum.isNat_ofNat, Mathlib.Tactic.Ring.Common.pow_add, Mathlib.Tactic.Ring.Common.pow_nat, Mathlib.Tactic.Ring.Common.coeff_one, Mathlib.Tactic.Ring.Common.pow_one_cast_of_isNat, Mathlib.Meta.NormNum.IsNat.mk and 48 more

    67 instances, coercions and auxiliary constants left out.

    Tactic trace: 12 steps

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

    lemma key_identity (u v w : ℝ) (hu : 0 ≤ u) (hv : 0 ≤ v) (hw : 0 ≤ w) :
        (1 + u) * (1 + (1 + v) * (1 + w)) - (√u + √v + √w) ^ 2 =
          (√u * (√v + √w) - 1) ^ 2 + (1 + u) * (√v * √w - 1) ^ 2 := by
    …
  3. lemma Usa2013P4.eq_conds Equality conditions: if (1+u)(1+(1+v)(1+w)) = (√u + √v + √w)² for nonnegative u, v, w, then v * w = 1 and u * (√v + √w)² = 1 line 71 source

    Source documentation

    Equality conditions: if (1+u)(1+(1+v)(1+w)) = (√u + √v + √w)² for nonnegative u, v, w, then v * w = 1 and u * (√v + √w)² = 1.

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

    Statement uses: Real, LE.le, OfNat.ofNat, Eq, HMul.hMul, HAdd.hAdd, HPow.hPow, Nat, Real.sqrt, And

    Proof uses: HSub.hSub, Usa2013P4.key_identity, sq_nonneg, mul_nonneg, le_of_not_gt, LT.lt, Mathlib.Tactic.Linarith.lt_irrefl, Eq.mp, Neg.neg, congrArg, Mathlib.Tactic.Ring.of_eq, Mathlib.Tactic.Ring.Common.add_congr, Int.rawCast, inferInstance, Ring, Int.negOfNat, Nat.rawCast, Mathlib.Tactic.Ring.Common.neg_congr, Mathlib.Tactic.Ring.cast_pos, Mathlib.Meta.NormNum.isNat_ofNat and 77 more

    107 instances, coercions and auxiliary constants left out.

    Tactic trace: 31 steps

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

    lemma eq_conds {u v w : ℝ} (hu : 0 ≤ u) (hv : 0 ≤ v) (hw : 0 ≤ w)
        (h : (1 + u) * (1 + (1 + v) * (1 + w)) = (√u + √v + √w) ^ 2) :
        v * w = 1 ∧ u * (√v + √w) ^ 2 = 1 := by
    …

    Mentions: h

  4. lemma Usa2013P4.min_eq_of_conds The conditions v * w = 1 and u * (√v + √w)² = 1 imply the equation, with the minimum attained at the term corresponding to u line 104 source

    Source documentation

    The conditions v * w = 1 and u * (√v + √w)² = 1 imply the equation, with the minimum attained at the term corresponding to u.

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

    Statement uses: Real, LE.le, OfNat.ofNat, Eq, HMul.hMul, HPow.hPow, Nat, HAdd.hAdd, Real.sqrt, Min.min

    Proof uses: Eq.mpr, id, congrArg, Eq.symm, Real.sqrt_mul, Real.sqrt_one, Eq.refl, add_nonneg, Real.sqrt_nonneg, LT.lt, Decidable.byContradiction, Not, le_antisymm, Eq.mp, sq_nonneg, zero_ne_one, MulZeroClass.mul_zero, mul_pow, Real.sq_sqrt, mul_nonneg and 97 more

    134 instances, coercions and auxiliary constants left out.

    Tactic trace: 61 steps

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

    lemma min_eq_of_conds {u v w : ℝ} (hu : 0 ≤ u) (hv : 0 ≤ v) (hw : 0 ≤ w)
        (h1 : v * w = 1) (h2 : u * (√v + √w) ^ 2 = 1) :
        min (min (√((1 + u) * (1 + (1 + v) * (1 + w))))
                (√((1 + v) * (1 + (1 + u) * (1 + w)))))
            (√((1 + w) * (1 + (1 + u) * (1 + v)))) = √u + √v + √w := by
    …
  5. lemma Usa2013P4.solution_of_conds Backward direction for one distinguished coordinate: the conditions v * w = 1 and u * (√v + √w)² = 1 imply u, v, w > 0 and the equation line 174 source

    Source documentation

    Backward direction for one distinguished coordinate: the conditions v * w = 1 and u * (√v + √w)² = 1 imply u, v, w > 0 and the equation.

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

    Statement uses: Real, Eq, HMul.hMul, OfNat.ofNat, HPow.hPow, Nat, HAdd.hAdd, Real.sqrt, And, LT.lt, Min.min

    Proof uses: Ne, False.elim, False, Eq.mp, Eq.trans, congrFun', congrArg, Mathlib.Meta.NormNum.IsNat.to_eq, Mathlib.Meta.NormNum.isNat_pow, Eq.refl, Mathlib.Meta.NormNum.isNat_ofNat, Nat.cast_zero, Mathlib.Meta.NormNum.zero_natPow, MulZeroClass.mul_zero, eq_false, not_false, Decidable.byContradiction, Not, Real.sqrt_eq_zero_of_nonpos, LE.le and 82 more

    99 instances, coercions and auxiliary constants left out.

    Tactic trace: 39 steps

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

    lemma solution_of_conds {u v w : ℝ} (h1 : v * w = 1)
        (h2 : u * (√v + √w) ^ 2 = 1) :
        1 < 1 + u ∧ 1 < 1 + v ∧ 1 < 1 + w ∧
          min (min (√((1 + u) * (1 + (1 + v) * (1 + w))))
                  (√((1 + v) * (1 + (1 + u) * (1 + w)))))
              (√((1 + w) * (1 + (1 + u) * (1 + v)))) = √u + √v + √w := by
    …
  6. lemma Usa2013P4.min_swap12 line 215 source

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

    Statement uses: Real, Eq, Min.min

    Proof uses: Eq.mpr, id, congrArg, min_comm, Eq.refl

    4 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

  7. lemma Usa2013P4.min_rotate line 218 source

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

    Statement uses: Real, Eq, Min.min

    Proof uses: Eq.mpr, id, congrArg, min_comm, Eq.symm, min_assoc, Eq.refl

    4 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

  8. determine Usa2013P4.solution_set line 223 source

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

    Statement uses: Set, Prod, Real

    Proof uses: Set.ofPred, Or, Usa2013P4.Distinguished, Prod.fst, Prod.snd

  9. problem Usa2013P4.usa2013_p4 line 228 source

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

    Statement uses: Real, Iff, And, LE.le, OfNat.ofNat, Eq, Min.min, Real.sqrt, HAdd.hAdd, HMul.hMul, HSub.hSub, Membership.mem, Prod, Set, Usa2013P4.solution_set, Prod.mk

    Proof uses: Iff.intro, le_of_not_gt, LT.lt, Mathlib.Tactic.Linarith.lt_irrefl, Eq.mp, congrArg, Mathlib.Tactic.Ring.of_eq, Mathlib.Tactic.Ring.Common.add_congr, Nat.rawCast, HPow.hPow, Nat, Int.rawCast, inferInstance, Ring, Int.negOfNat, Mathlib.Tactic.Ring.Common.sub_congr, Mathlib.Tactic.Ring.cast_pos, Mathlib.Meta.NormNum.isNat_ofNat, Nat.cast_one, Mathlib.Tactic.Ring.Common.atom_pf and 77 more

    85 instances, coercions and auxiliary constants left out.

    Tactic trace: 98 steps

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