Compfiles/Usa1989P3.lean
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
5 declarations, 0 contain sorry, 0 declared as axioms
USA Mathematical Olympiad 1989, Problem 3
Let P(z) = zⁿ + c₁zⁿ⁻¹ + ⋯ + cₙ be a polynomial in the complex variable z, with real coefficients cₖ. Suppose that |P(i)| < 1. Prove that there exist real numbers a and b such that P(a + bi) = 0 and (a² + b² + 1)² < 4b² + 1.
Imports (5)
Imported by 1 file
- theorem
Usa1989P3.star_evalEvaluating a polynomial whose coefficients are all real at the conjugate ofzis the same as conjugating its value atzline 35 sourceSource documentation
Evaluating a polynomial whose coefficients are all real at the conjugate of
zis the same as conjugating its value atz.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Polynomial,Complex,Nat,Eq,Real,Complex.im,Finsupp,Polynomial.coeff,OfNat.ofNat,Star.star,Polynomial.evalProof uses:
RingHom,starRingEnd,Eq.mpr,Finset.sum,Finset.range,HAdd.hAdd,Polynomial.natDegree,HMul.hMul,HPow.hPow,id,congrArg,Polynomial.eval_eq_sum_range,map_sum,NNRat,RingHom.id,Finset.sum_congr,rfl,Finset,Membership.mem,map_muland 6 more64 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
theorem star_eval {P : ℂ[X]} (hreal : ∀ n : ℕ, (P.coeff n).im = 0) (z : ℂ) : star (P.eval z) = P.eval (star z) := by …Mentions: P
- theorem
Usa1989P3.normSq_I_sub_mul_normSq_I_addFor a complex numberr, the product of the squared distances fromrtoiand to-iequals(r.re² + r.im² + 1)² - 4 r.im²line 47 sourceSource documentation
For a complex number
r, the product of the squared distances fromrtoiand to-iequals(r.re² + r.im² + 1)² - 4 r.im².standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Complex,Eq,Real,HMul.hMul,MonoidWithZeroHom,Complex.normSq,HSub.hSub,Complex.I,HAdd.hAdd,HPow.hPow,Nat,Complex.re,OfNat.ofNat,Complex.imProof uses:
id,Mathlib.Tactic.Ring.of_eq,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Meta.NormNum.instAddMonoidWithOne,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.cast_zero,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_zero,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,congrArg,Eq.symm,Eq.refland 48 more76 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem normSq_I_sub_mul_normSq_I_add (r : ℂ) : Complex.normSq (Complex.I - r) * Complex.normSq (Complex.I + r) = (r.re ^ 2 + r.im ^ 2 + 1) ^ 2 - 4 * r.im ^ 2 := by … - theorem
Usa1989P3.prod_normSq_sub_rootsThe squared distances from the roots of a monic polynomial to a pointzmultiply to the squared norm of the value of the polynomial atzline 56 sourceSource documentation
The squared distances from the roots of a monic polynomial to a point
zmultiply to the squared norm of the value of the polynomial atz.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Polynomial,Complex,Polynomial.Splits,Polynomial.Monic,Eq,Real,Multiset.prod,Multiset.map,MonoidWithZeroHom,Complex.normSq,HSub.hSub,Polynomial.roots,Polynomial.evalProof uses:
Eq.mpr,id,congrArg,Polynomial.Splits.eval_eq_prod_roots_of_monic,map_multiset_prod,Function.comp,Multiset,Multiset.map_map,Eq.refl36 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem prod_normSq_sub_roots {P : ℂ[X]} (hsplit : P.Splits) (hmonic : P.Monic) (z : ℂ) : (P.roots.map fun r ↦ Complex.normSq (z - r)).prod = Complex.normSq (P.eval z) := by …Mentions: P
- theorem
Usa1989P3.prod_normSq_add_rootsThe squared distances from the roots of a monic polynomial to a pointz, with signs flipped, again multiply to the squared norm of the value of the polynomial at-zline 65 sourceSource documentation
The squared distances from the roots of a monic polynomial to a point
z, with signs flipped, again multiply to the squared norm of the value of the polynomial at-z.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Polynomial,Complex,Polynomial.Splits,Polynomial.Monic,Eq,Real,Multiset.prod,Multiset.map,MonoidWithZeroHom,Complex.normSq,HAdd.hAdd,Polynomial.roots,Polynomial.eval,Neg.negProof uses:
HSub.hSub,funext,Mathlib.Tactic.Ring.of_eq,HMul.hMul,HPow.hPow,Nat,Nat.rawCast,OfNat.ofNat,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.Common.neg_congr,Int.rawCastand 20 more54 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
theorem prod_normSq_add_roots {P : ℂ[X]} (hsplit : P.Splits) (hmonic : P.Monic) (z : ℂ) : (P.roots.map fun r ↦ Complex.normSq (z + r)).prod = Complex.normSq (P.eval (-z)) := by …Mentions: P
- problem
Usa1989P3.usa1989_p3line 76 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Polynomial,Complex,Polynomial.Monic,Nat,Eq,Real,Complex.im,Finsupp,Polynomial.coeff,OfNat.ofNat,LT.lt,Norm.norm,Polynomial.eval,Complex.I,Exists,And,HAdd.hAdd,HMul.hMul,HPow.hPowProof uses:
Polynomial.Splits,IsAlgClosed.splits,Ne,Polynomial.Monic.ne_zero,MonoidWithZeroHom,Complex.normSq,Eq.mpr,id,congrArg,Complex.normSq_eq_norm_sq,lt_of_not_ge,LE.le,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,HSub.hSub,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Nat.rawCast,Int.rawCast,inferInstanceand 107 more164 instances, coercions and auxiliary constants left out.
Tactic trace: 25 steps
Open to load the checked before-and-after goal states.