Documentation

RealClosedField.SturmTarski.Utils

theorem or_neg_of_mul_neg {R : Type u_1} [Field R] [IsRealClosed R] (a b : R) :
a * b < 0a < 0 b < 0
def rootsInInterval {R : Type u_1} [Field R] [IsRealClosed R] (f : Polynomial R) (a b : R) :
Equations
Instances For
    def sgn {R : Type u_1} [Field R] [IsRealClosed R] (k : R) :
    Equations
    Instances For
      theorem sgn_sgn_neg {R : Type u_1} [Field R] [IsRealClosed R] (x : R) :
      sgn x < 0 x < 0
      theorem sgn_sgn_zero {R : Type u_1} [Field R] [IsRealClosed R] (x : R) :
      sgn x = 0 x = 0
      theorem sgn_sgn_pos {R : Type u_1} [Field R] [IsRealClosed R] (x : R) :
      sgn x > 0 x > 0
      def sgn_pos_inf {R : Type u_1} [Field R] [IsRealClosed R] (p : Polynomial R) :
      Equations
      Instances For
        def seq_sgn_pos_inf {R : Type u_1} [Field R] [IsRealClosed R] :
        List (Polynomial R)List R
        Equations
        Instances For
          def seq_sgn_neg_inf {R : Type u_1} [Field R] [IsRealClosed R] :
          List (Polynomial R)List R
          Equations
          Instances For
            def tarskiQuery {R : Type u_1} [Field R] [IsRealClosed R] (f g : Polynomial R) (a b : R) :
            Equations
            Instances For
              theorem rootsInIntervalZero {R : Type u_1} [Field R] [IsRealClosed R] (a b : R) :
              def rootsInSet {R : Type u_1} [Field R] [IsRealClosed R] (p : Polynomial R) (S : Set R) :
              Equations
              Instances For
                theorem rootsInSet_interval {R : Type u_1} [Field R] [IsRealClosed R] (p : Polynomial R) (a b : R) :
                theorem rootsInSet_cup {R : Type u_1} [Field R] [IsRealClosed R] (p : Polynomial R) (S T : Set 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 zSet.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, zSet.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 bPolynomial.eval a p 00 Polynomial.eval b pra, 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) :
                (∀ zSet.Ioc lb ub, Polynomial.eval z p 0) (∀ zSet.Ioc lb ub, Polynomial.eval z p < 0) zSet.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 bt Set.Ioo (Polynomial.eval a P) (Polynomial.eval b P)sSet.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) :
                sSet.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) :
                sSet.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) :
                sSet.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 : xSet.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 bPolynomial.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 : xSet.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 bPolynomial.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 : xSet.Ioo a b, Polynomial.eval x P 0) :
                (∀ xSet.Ioo a b, Polynomial.eval x P > 0) xSet.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 : xSet.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 bPolynomial.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 : xSet.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 bPolynomial.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 : xSet.Ioo a b, Polynomial.eval x P 0) :
                (∀ xSet.Icc a b, Polynomial.eval x P 0) xSet.Icc 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 : xSet.Ioo a b, Polynomial.eval x P 0) (hPa : Polynomial.eval a P = 0) (hPb : Polynomial.eval b 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) :
                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 : {xP.roots.toFinset | x Set.Ioo a b}.card < n) :
                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) :
                theorem mean_value_theorem {R : Type u_1} [Field R] [IsRealClosed R] {a b : R} {P : Polynomial R} (hab : a < b) :
                theorem exists_deriv_eq_slope_poly {R : Type u_1} [Field R] [IsRealClosed R] (a b : R) (hab : a < b) (p : Polynomial R) :
                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) :
                p 0
                theorem div_rem_zero {R : Type u_1} [Field R] [IsRealClosed R] {b c r : Polynomial R} (h_rem : r.degree < b.degree) :
                (c * b + r) / b = c
                theorem mul_cancel' {R : Type u_1} [Field R] [IsRealClosed R] {p q r : Polynomial R} (hr : r 0) :
                r * p / (r * q) = p / q
                theorem mod_eq_sub_div {R : Type u_1} [Field R] [IsRealClosed R] {a b : Polynomial R} :
                a % b = a - a / b * b
                theorem mod_mul {R : Type u_1} [Field R] [IsRealClosed R] (p q r : Polynomial R) (hr : r 0) :
                r * p % (r * q) = r * (p % q)
                theorem X_sub_C_ne_one {R : Type u_1} [Field R] [IsRealClosed R] (r : R) :
                theorem rootsInInterval_mul {R : Type u_1} [Field R] [IsRealClosed R] {p q : Polynomial R} (a b : R) (hpq : p * q 0) :
                theorem neg_neg_div {R : Type u_1} [Field R] [IsRealClosed R] (p q : Polynomial R) :
                -(-p / q) = p / q
                theorem mod_minus {R : Type u_1} [Field R] [IsRealClosed R] (p q : Polynomial R) :
                -p % q = -(p % q)
                theorem factorize {R : Type u_1} [Field R] [IsRealClosed R] (a x : R) (ha : a 0) :
                x = a * (x / a)
                theorem distrib_div {R : Type u_1} [Field R] [IsRealClosed R] (a b d : R) (hd : d 0) :
                (a + b) / d = a / d + b / d
                theorem sgn_mul_pos {R : Type u_1} [Field R] [IsRealClosed R] (a b : R) (ha : 0 < a) :
                sgn (a * b) = sgn b
                theorem sgn_dont_change {R : Type u_1} [Field R] [IsRealClosed R] (a b : R) (hab : |b| < |a| / 2) :
                sgn (a + b) = sgn a
                theorem bound_sgn_pos_inf {R : Type u_1} [Field R] [IsRealClosed R] (p : Polynomial R) (hp : p 0) :
                ∃ (ub : R), xub, 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), xlb, 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 = 0x < ub) xub, 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 = 0x > lb) xlb, 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 : 0ps) :
                ∃ (ub : R), (∀ pps, ∀ (x : R), Polynomial.eval x p = 0x < ub) a < ub xub, pps, 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 : 0ps) :
                ∃ (lb : R), (∀ pps, ∀ (x : R), Polynomial.eval x p = 0lb < x) lb < b xlb, pps, sgn (Polynomial.eval x p) = sgn_neg_inf p