def
rootsInInterval
{R : Type u_1}
[Field R]
[IsRealClosed R]
(f : Polynomial R)
(a b : R)
:
Finset R
Instances For
Equations
- sgn_pos_inf p = sgn p.leadingCoeff
Instances For
Equations
- sgn_neg_inf p = if Even p.natDegree then sgn p.leadingCoeff else -sgn p.leadingCoeff
Instances For
Equations
- seq_sgn_pos_inf [] = []
- seq_sgn_pos_inf (p :: ps) = ↑(sgn_pos_inf p) :: seq_sgn_pos_inf ps
Instances For
Equations
- seq_sgn_neg_inf [] = []
- seq_sgn_neg_inf (p :: ps) = ↑(sgn_neg_inf p) :: seq_sgn_neg_inf ps
Instances For
Equations
- tarskiQuery f g a b = ∑ x ∈ rootsInInterval f a b, sgn (Polynomial.eval x g)
Instances For
Equations
- rootsInSet p S = {x ∈ p.roots.toFinset | x ∈ S}
Instances For
theorem
rootsInSet_interval
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p : Polynomial R)
(a b : R)
:
theorem
next_non_root_interval
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p : Polynomial R)
(lb : R)
(hp : p ≠ 0)
:
∃ (ub : R), lb < ub ∧ ∀ z ∈ Set.Ioc lb ub, Polynomial.eval z p ≠ 0
theorem
last_non_root_interval
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p : Polynomial R)
(ub : R)
(hp : p ≠ 0)
:
∃ lb < ub, ∀ z ∈ Set.Ico lb ub, Polynomial.eval z p ≠ 0
theorem
intermediate_value_property'
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p : Polynomial R)
(a b : R)
:
a ≤ b → Polynomial.eval a p ≤ 0 → 0 ≤ Polynomial.eval b p → ∃ r ≥ a, r ≤ b ∧ Polynomial.eval r p = 0
theorem
intermediate_value_property'_ioo
{R : Type u_1}
[Field R]
[IsRealClosed R]
{p : Polynomial R}
{a b : R}
(hab : a ≤ b)
(hap : Polynomial.eval a p < 0)
(hbp : Polynomial.eval b p > 0)
:
∃ r > a, r < b ∧ Polynomial.eval r p = 0
theorem
intermediate_value_property_ioo
{R : Type u_1}
[Field R]
[IsRealClosed R]
{p : Polynomial R}
{a b : R}
(hab : a ≤ b)
(hap : Polynomial.eval a p > 0)
(hbp : Polynomial.eval b p < 0)
:
∃ r > a, r < b ∧ Polynomial.eval r p = 0
theorem
exists_root_ioo_mul
{R : Type u_1}
[Field R]
[IsRealClosed R]
{p : Polynomial R}
{a b : R}
(hab : a ≤ b)
(hap : Polynomial.eval a p * Polynomial.eval b p < 0)
:
∃ r > a, r < b ∧ Polynomial.eval r p = 0
theorem
not_eq_pos_or_neg_iff_1
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p : Polynomial R)
(lb ub : R)
:
(∀ z ∈ Set.Ioc lb ub, Polynomial.eval z p ≠ 0) ↔ (∀ z ∈ Set.Ioc lb ub, Polynomial.eval z p < 0) ∨ ∀ z ∈ Set.Ioc lb ub, 0 < Polynomial.eval z p
theorem
derivative_ne_0
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p : Polynomial R)
(x : R)
(hev : Polynomial.eval x p = 0)
(hp : p ≠ 0)
:
theorem
hc
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b t : R}
{P : Polynomial R}
:
a ≤ b → t ∈ Set.Ioo (Polynomial.eval a P) (Polynomial.eval b P) → ∃ s ∈ Set.Ioo a b, Polynomial.eval s P = t
theorem
polynomial_has_root_of_le_zero_of_pos
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b : R}
(hab : a ≤ b)
{P : Polynomial R}
(ha : Polynomial.eval a P < 0)
(hb : 0 < Polynomial.eval b P)
:
∃ s ∈ Set.Ioo a b, Polynomial.eval s P = 0
theorem
polynomial_has_root_of_pos_le_zero
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b : R}
(hab : a ≤ b)
{P : Polynomial R}
(ha : 0 < Polynomial.eval a P)
(hb : Polynomial.eval b P < 0)
:
∃ s ∈ Set.Ioo a b, Polynomial.eval s P = 0
theorem
polynomial_has_root_of_mul_neg
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b : R}
(hab : a ≤ b)
{P : Polynomial R}
(habm : Polynomial.eval a P * Polynomial.eval b P < 0)
:
∃ s ∈ Set.Ioo a b, Polynomial.eval s P = 0
theorem
neg_of_ne_zero_of_exists_neg
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b m : R}
{P : Polynomial R}
(hP : ∀ x ∈ Set.Ioo a b, Polynomial.eval x P ≠ 0)
(hm : m ∈ Set.Ioo a b)
(hneg : Polynomial.eval m P < 0)
(x : R)
:
x ∈ Set.Ioo a b → Polynomial.eval x P < 0
theorem
pos_of_ne_zero_of_exists_pos
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b m : R}
{P : Polynomial R}
(hP : ∀ x ∈ Set.Ioo a b, Polynomial.eval x P ≠ 0)
(hm : m ∈ Set.Ioo a b)
(hpos : Polynomial.eval m P > 0)
(x : R)
:
x ∈ Set.Ioo a b → Polynomial.eval x P > 0
theorem
constant_sign_of_ne_zero
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b : R}
(hab : a ≤ b)
{P : Polynomial R}
(hP : ∀ x ∈ Set.Ioo a b, Polynomial.eval x P ≠ 0)
:
theorem
nonpos_of_ne_zero_of_exists_neg
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b m : R}
{P : Polynomial R}
(hP : ∀ x ∈ Set.Ioo a b, Polynomial.eval x P ≠ 0)
(hm : m ∈ Set.Ioo a b)
(hneg : Polynomial.eval m P < 0)
(x : R)
:
x ∈ Set.Icc a b → Polynomial.eval x P ≤ 0
theorem
nonneg_of_ne_zero_of_exists_pos
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b m : R}
{P : Polynomial R}
(hP : ∀ x ∈ Set.Ioo a b, Polynomial.eval x P ≠ 0)
(hm : m ∈ Set.Ioo a b)
(hpos : Polynomial.eval m P > 0)
(x : R)
:
x ∈ Set.Icc a b → Polynomial.eval x P ≥ 0
theorem
constant_sign_of_ne_zero'
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b : R}
(hab : a ≤ b)
{P : Polynomial R}
(hP : ∀ x ∈ Set.Ioo a b, Polynomial.eval x P ≠ 0)
:
theorem
rolle_theorem_weak
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b : R}
(hab : a < b)
{P : Polynomial R}
(hP : ∀ x ∈ Set.Ioo a b, Polynomial.eval x P ≠ 0)
(hPa : Polynomial.eval a P = 0)
(hPb : Polynomial.eval b P = 0)
:
∃ c ∈ Set.Ioo a b, Polynomial.eval c (Polynomial.derivative P) = 0
theorem
rolle_theorem_weak'
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b : R}
(hab : a < b)
{P : Polynomial R}
(hPa : Polynomial.eval a P = 0)
(hPb : Polynomial.eval b P = 0)
:
∃ c ∈ Set.Ioo a b, Polynomial.eval c (Polynomial.derivative P) = 0 ∨ Polynomial.eval c P = 0
theorem
rolle_theorem_induction
{R : Type u_1}
[Field R]
[IsRealClosed R]
(n : ℕ)
{a b : R}
{P : Polynomial R}
(hab : a < b)
(hPa : Polynomial.eval a P = 0)
(hPb : Polynomial.eval b P = 0)
(hcard : {x ∈ P.roots.toFinset | x ∈ Set.Ioo a b}.card < n)
:
∃ c ∈ Set.Ioo a b, Polynomial.eval c (Polynomial.derivative P) = 0
theorem
rolle_theorem
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b : R}
{P : Polynomial R}
(hab : a < b)
(hPab : Polynomial.eval a P = Polynomial.eval b P)
:
∃ c ∈ Set.Ioo a b, Polynomial.eval c (Polynomial.derivative P) = 0
theorem
mean_value_theorem
{R : Type u_1}
[Field R]
[IsRealClosed R]
{a b : R}
{P : Polynomial R}
(hab : a < b)
:
∃ c ∈ Set.Ioo a b, Polynomial.eval b P - Polynomial.eval a P = Polynomial.eval c (Polynomial.derivative P) * (b - a)
theorem
exists_deriv_eq_slope_poly
{R : Type u_1}
[Field R]
[IsRealClosed R]
(a b : R)
(hab : a < b)
(p : Polynomial R)
:
∃ c > a, c < b ∧ Polynomial.eval b p - Polynomial.eval a p = (b - a) * Polynomial.eval c (Polynomial.derivative p)
theorem
eval_mod
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p q : Polynomial R)
(x : R)
(h : Polynomial.eval x q = 0)
:
theorem
eval_non_zero
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p : Polynomial R)
(x : R)
(h : Polynomial.eval x p ≠ 0)
:
theorem
mul_C_eq_root_multiplicity
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p : Polynomial R)
(c r : R)
(hc : ¬c = 0)
:
theorem
div_rem_zero
{R : Type u_1}
[Field R]
[IsRealClosed R]
{b c r : Polynomial R}
(h_rem : r.degree < b.degree)
:
theorem
rootsInInterval_mul
{R : Type u_1}
[Field R]
[IsRealClosed R]
{p q : Polynomial R}
(a b : R)
(hpq : p * q ≠ 0)
:
theorem
bound_sgn_pos_inf
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p : Polynomial R)
(hp : p ≠ 0)
:
∃ (ub : R), ∀ x ≥ ub, sgn (Polynomial.eval x p) = sgn_pos_inf p
theorem
bound_sgn_neg_inf
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p : Polynomial R)
(hp : p ≠ 0)
:
∃ (lb : R), ∀ x ≤ lb, sgn (Polynomial.eval x p) = sgn_neg_inf p
theorem
root_ub
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p : Polynomial R)
(hp : p ≠ 0)
:
∃ (ub : R), (∀ (x : R), Polynomial.eval x p = 0 → x < ub) ∧ ∀ x ≥ ub, sgn (Polynomial.eval x p) = sgn_pos_inf p
theorem
root_lb
{R : Type u_1}
[Field R]
[IsRealClosed R]
(p : Polynomial R)
(hp : p ≠ 0)
:
∃ (lb : R), (∀ (x : R), Polynomial.eval x p = 0 → x > lb) ∧ ∀ x ≤ lb, sgn (Polynomial.eval x p) = sgn_neg_inf p
theorem
root_list_ub
{R : Type u_1}
[Field R]
[IsRealClosed R]
(ps : List (Polynomial R))
(a : R)
(h0 : 0 ∉ ps)
:
∃ (ub : R),
(∀ p ∈ ps, ∀ (x : R), Polynomial.eval x p = 0 → x < ub) ∧ a < ub ∧ ∀ x ≥ ub, ∀ p ∈ ps, sgn (Polynomial.eval x p) = sgn_pos_inf p
theorem
root_list_lb
{R : Type u_1}
[Field R]
[IsRealClosed R]
(ps : List (Polynomial R))
(b : R)
(h0 : 0 ∉ ps)
:
∃ (lb : R),
(∀ p ∈ ps, ∀ (x : R), Polynomial.eval x p = 0 → lb < x) ∧ lb < b ∧ ∀ x ≤ lb, ∀ p ∈ ps, sgn (Polynomial.eval x p) = sgn_neg_inf p