File: Mathlib/Analysis/SpecialFunctions/Polynomials.lean

full_name: Polynomial.eventually_no_roots
code: theorem eventually_no_roots (hP : P ≠ 0) : ∀ᶠ x in atTop, ¬P.IsRoot x 
goal: ∀ᶠ (x : 𝕜) in Filter.atTop, ¬P.IsRoot x

full_name: Polynomial.isEquivalent_atTop_lead
code: theorem isEquivalent_atTop_lead :
    (fun x => eval x P) ~[atTop] fun x => P.leadingCoeff * x ^ P.natDegree 
goal: (fun x => Polynomial.eval x P) ~[Filter.atTop] fun x => P.leadingCoeff * x ^ P.natDegree

full_name: Polynomial.tendsto_atTop_of_leadingCoeff_nonneg
code: theorem tendsto_atTop_of_leadingCoeff_nonneg (hdeg : 0 < P.degree) (hnng : 0 ≤ P.leadingCoeff) :
    Tendsto (fun x => eval x P) atTop atTop 
goal: Filter.Tendsto (fun x => Polynomial.eval x P) Filter.atTop Filter.atTop

full_name: Polynomial.tendsto_atTop_iff_leadingCoeff_nonneg
code: theorem tendsto_atTop_iff_leadingCoeff_nonneg :
    Tendsto (fun x => eval x P) atTop atTop ↔ 0 < P.degree ∧ 0 ≤ P.leadingCoeff 
goal: Filter.Tendsto (fun x => Polynomial.eval x P) Filter.atTop Filter.atTop ↔ 0 < P.degree ∧ 0 ≤ P.leadingCoeff

full_name: Polynomial.tendsto_atBot_iff_leadingCoeff_nonpos
code: theorem tendsto_atBot_iff_leadingCoeff_nonpos :
    Tendsto (fun x => eval x P) atTop atBot ↔ 0 < P.degree ∧ P.leadingCoeff ≤ 0 
goal: Filter.Tendsto (fun x => Polynomial.eval x P) Filter.atTop Filter.atBot ↔ 0 < P.degree ∧ P.leadingCoeff ≤ 0

full_name: Polynomial.tendsto_atBot_of_leadingCoeff_nonpos
code: theorem tendsto_atBot_of_leadingCoeff_nonpos (hdeg : 0 < P.degree) (hnps : P.leadingCoeff ≤ 0) :
    Tendsto (fun x => eval x P) atTop atBot 
goal: Filter.Tendsto (fun x => Polynomial.eval x P) Filter.atTop Filter.atBot

full_name: Polynomial.abs_tendsto_atTop
code: theorem abs_tendsto_atTop (hdeg : 0 < P.degree) :
    Tendsto (fun x => abs <| eval x P) atTop atTop 
goal: Filter.Tendsto (fun x => |Polynomial.eval x P|) Filter.atTop Filter.atTop

full_name: Polynomial.abs_isBoundedUnder_iff
code: theorem abs_isBoundedUnder_iff :
    (IsBoundedUnder (· ≤ ·) atTop fun x => |eval x P|) ↔ P.degree ≤ 0 
goal: (Filter.IsBoundedUnder (fun x x_1 => x ≤ x_1) Filter.atTop fun x => |Polynomial.eval x P|) ↔ P.degree ≤ 0

full_name: Polynomial.abs_tendsto_atTop_iff
code: theorem abs_tendsto_atTop_iff : Tendsto (fun x => abs <| eval x P) atTop atTop ↔ 0 < P.degree 
goal: Filter.Tendsto (fun x => |Polynomial.eval x P|) Filter.atTop Filter.atTop ↔ 0 < P.degree

full_name: Polynomial.tendsto_nhds_iff
code: theorem tendsto_nhds_iff {c : 𝕜} :
    Tendsto (fun x => eval x P) atTop (𝓝 c) ↔ P.leadingCoeff = c ∧ P.degree ≤ 0 
goal: Filter.Tendsto (fun x => Polynomial.eval x P) Filter.atTop (𝓝 c) ↔ P.leadingCoeff = c ∧ P.degree ≤ 0

full_name: Polynomial.isEquivalent_atTop_div
code: theorem isEquivalent_atTop_div :
    (fun x => eval x P / eval x Q) ~[atTop] fun x =>
      P.leadingCoeff / Q.leadingCoeff * x ^ (P.natDegree - Q.natDegree : ℤ) 
goal: (fun x => Polynomial.eval x P / Polynomial.eval x Q) ~[Filter.atTop] fun x =>
  P.leadingCoeff / Q.leadingCoeff * x ^ (↑P.natDegree - ↑Q.natDegree)

full_name: Polynomial.div_tendsto_zero_of_degree_lt
code: theorem div_tendsto_zero_of_degree_lt (hdeg : P.degree < Q.degree) :
    Tendsto (fun x => eval x P / eval x Q) atTop (𝓝 0) 
goal: Filter.Tendsto (fun x => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop (𝓝 0)

full_name: Polynomial.div_tendsto_zero_iff_degree_lt
code: theorem div_tendsto_zero_iff_degree_lt (hQ : Q ≠ 0) :
    Tendsto (fun x => eval x P / eval x Q) atTop (𝓝 0) ↔ P.degree < Q.degree 
goal: Filter.Tendsto (fun x => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop (𝓝 0) ↔ P.degree < Q.degree

full_name: Polynomial.div_tendsto_leadingCoeff_div_of_degree_eq
code: theorem div_tendsto_leadingCoeff_div_of_degree_eq (hdeg : P.degree = Q.degree) :
    Tendsto (fun x => eval x P / eval x Q) atTop (𝓝 <| P.leadingCoeff / Q.leadingCoeff) 
goal: Filter.Tendsto (fun x => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop (𝓝 (P.leadingCoeff / Q.leadingCoeff))

full_name: Polynomial.div_tendsto_atTop_of_degree_gt'
code: theorem div_tendsto_atTop_of_degree_gt' (hdeg : Q.degree < P.degree)
    (hpos : 0 < P.leadingCoeff / Q.leadingCoeff) :
    Tendsto (fun x => eval x P / eval x Q) atTop atTop 
goal: Filter.Tendsto (fun x => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop Filter.atTop

full_name: Polynomial.div_tendsto_atTop_of_degree_gt
code: theorem div_tendsto_atTop_of_degree_gt (hdeg : Q.degree < P.degree) (hQ : Q ≠ 0)
    (hnng : 0 ≤ P.leadingCoeff / Q.leadingCoeff) :
    Tendsto (fun x => eval x P / eval x Q) atTop atTop 
goal: Filter.Tendsto (fun x => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop Filter.atTop

full_name: Polynomial.div_tendsto_atBot_of_degree_gt'
code: theorem div_tendsto_atBot_of_degree_gt' (hdeg : Q.degree < P.degree)
    (hneg : P.leadingCoeff / Q.leadingCoeff < 0) :
    Tendsto (fun x => eval x P / eval x Q) atTop atBot 
goal: Filter.Tendsto (fun x => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop Filter.atBot

full_name: Polynomial.div_tendsto_atBot_of_degree_gt
code: theorem div_tendsto_atBot_of_degree_gt (hdeg : Q.degree < P.degree) (hQ : Q ≠ 0)
    (hnps : P.leadingCoeff / Q.leadingCoeff ≤ 0) :
    Tendsto (fun x => eval x P / eval x Q) atTop atBot 
goal: Filter.Tendsto (fun x => Polynomial.eval x P / Polynomial.eval x Q) Filter.atTop Filter.atBot

full_name: Polynomial.abs_div_tendsto_atTop_of_degree_gt
code: theorem abs_div_tendsto_atTop_of_degree_gt (hdeg : Q.degree < P.degree) (hQ : Q ≠ 0) :
    Tendsto (fun x => |eval x P / eval x Q|) atTop atTop 
goal: Filter.Tendsto (fun x => |Polynomial.eval x P / Polynomial.eval x Q|) Filter.atTop Filter.atTop

full_name: Polynomial.isBigO_of_degree_le
code: theorem isBigO_of_degree_le (h : P.degree ≤ Q.degree) :
    (fun x => eval x P) =O[atTop] fun x => eval x Q 
goal: (fun x => Polynomial.eval x P) =O[Filter.atTop] fun x => Polynomial.eval x Q