Compfiles/Usa1992P5.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
7 declarations, 0 contain sorry, 0 declared as axioms
USA Mathematical Olympiad 1992, Problem 5
A complex polynomial has degree 1992 and distinct zeros. Show that we can find complex numbers zₙ, such that if p₁(z) = z - z₁ and pₙ(z) = pₙ₋₁(z)² - zₙ, then the polynomial divides p₁₉₉₂(z).
Imports (4)
Imported by 1 file
- def
Usa1992P5.pseqThe iterated polynomial sequence of the problem:pseq [z₁, …, zₙ]is the polynomialpₙ, wherep₁(z) = z - z₁andpₖ(z) = pₖ₋₁(z)² - zₖline 32 sourceSource documentation
The iterated polynomial sequence of the problem:
pseq [z₁, …, zₙ]is the polynomialpₙ, wherep₁(z) = z - z₁andpₖ(z) = pₖ₋₁(z)² - zₖ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Complex,PolynomialProof uses:
Usa1992P5.pseq.match_1,Unit,Polynomial.X,List.foldl,HSub.hSub,HPow.hPow,Nat,OfNat.ofNat,RingHom,Polynomial.C14 instances, coercions and auxiliary constants left out.
noncomputable def pseq : List ℂ → ℂ[X] | [] => X | z :: zs => zs.foldl (fun P w => P ^ 2 - C w) (X - C z) snip begin -- Follows the solution at https://prase.cz/kalva/usa/usoln/usol925.html. -- Starting from the set S of zeros of q, repeatedly replace S by the smaller -- set {(s - m)² : s ∈ S}, where m is the midpoint of two distinct elements -- of S; after at most |S| - 1 steps one reaches a set with a single element, -- and choosing the next z to be that element makes p vanish on all of S. - lemma
Usa1992P5.pseq_concatline 44 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Complex,Ne,List.nil,Eq,Polynomial, Usa1992P5.pseq,HAppend.hAppend,List.cons,HSub.hSub,HPow.hPow,Nat,OfNat.ofNat,RingHom,Polynomial.CProof uses:
absurd,rfl,Eq.symm,of_eq_true,List.foldl,Polynomial.X,Eq.trans,True,congrFun',congrArg,List.foldl_append,eq_self,Eq.refl32 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1992P5.pseq_foldl_compline 51 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Polynomial,Complex,List,Eq,Polynomial.comp,List.foldl,HSub.hSub,HPow.hPow,Nat,OfNat.ofNat,RingHom,Polynomial.CProof uses:
List.rec,Eq.refl,List.nil,Eq.mpr,List.cons,id,congrFun',congrArg,Eq.rec,of_eq_true,Eq.trans,True,Polynomial.sub_comp,congr,Polynomial.pow_comp,Polynomial.C_comp,eq_self29 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1992P5.pseq_cons_compline 61 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Complex,List,Eq,Polynomial, Usa1992P5.pseq,List.cons,Polynomial.comp,HPow.hPow,Nat,HSub.hSub,Polynomial.X,RingHom,Polynomial.C,OfNat.ofNatProof uses:
id,Eq.mpr,List.foldl,congrArg, Usa1992P5.pseq_foldl_comp,Eq.rec,Eq.refl,of_eq_true,Eq.trans,True,Polynomial.sub_comp,congr,Polynomial.X_comp,Polynomial.C_comp,eq_self27 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1992P5.pseq_cons_evalline 68 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Complex,List,Ne,List.nil,Eq,Polynomial.eval, Usa1992P5.pseq,List.cons,HPow.hPow,Nat,HSub.hSub,OfNat.ofNatProof uses:
absurd,rfl,Eq.symm,Eq.mpr,Polynomial.comp,Polynomial,Polynomial.X,RingHom,Polynomial.C,id,congrArg, Usa1992P5.pseq_cons_comp,Polynomial.eval_comp,of_eq_true,Eq.trans,True,congrFun',Polynomial.eval_pow,Polynomial.eval_sub,congrand 4 more31 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1992P5.exists_pseq_eval_eq_zeroThe combinatorial heart of the solution: for any nonempty setSof at mostncomplex numbers one can choosez₁, …, zₙso thatpₙvanishes on all ofSline 79 sourceSource documentation
The combinatorial heart of the solution: for any nonempty set
Sof at mostncomplex numbers one can choosez₁, …, zₙso thatpₙvanishes on all ofS.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Complex,Finset.Nonempty,LE.le,Finset.card,Exists,List,And,Eq,List.length,Membership.mem,Polynomial.eval, Usa1992P5.pseq,OfNat.ofNatProof uses:
Nat.recAux,False.elim,LT.lt,Iff.mpr,Finset.card_pos,HAdd.hAdd,Or,lt_or_ge,dite,Exists.intro,List.cons,List.nil,And.intro,rfl,Iff.mp,Finset.card_le_one,of_eq_true,Eq.trans,True,congrFun'and 100 more127 instances, coercions and auxiliary constants left out.
Tactic trace: 58 steps
Open to load the checked before-and-after goal states.
lemma exists_pseq_eval_eq_zero : ∀ n : ℕ, ∀ S : Finset ℂ, S.Nonempty → S.card ≤ n → ∃ zs : List ℂ, zs.length = n ∧ ∀ w ∈ S, (pseq zs).eval w = 0 := by …Mentions: S, Usa1992P5.pseq
- problem
Usa1992P5.usa1992_p5line 145 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Polynomial,Complex,Eq,Nat,Polynomial.natDegree,OfNat.ofNat,Multiset.Nodup,Polynomial.roots,Exists,List,And,List.length,Dvd.dvd, Usa1992P5.pseqProof uses:
Ne,False,False.elim,Eq.mp,eq_false,Mathlib.Meta.NormNum.isNat_eq_false,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.false,congrArg,Polynomial.natDegree_zero,Eq.symm,Polynomial.Splits,IsAlgClosed.splits,Multiset.card,Eq.mpr,id,Iff.mp,Polynomial.splits_iff_card_rootsand 51 more97 instances, coercions and auxiliary constants left out.
Tactic trace: 31 steps
Open to load the checked before-and-after goal states.