ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Polynomial.Monic.add_of_left
theorem Monic.add_of_left (hp : Monic p) (hpq : degree q < degree p) : Monic (p + q) 
Arguments: {R : Type u} [Semiring R] {p q : R[X]} (hp : p.Monic) (hpq : q.degree < p.degree)
Goal: (p + q).Monic
-- Polynomial.Monic.add_of_right
theorem Monic.add_of_right (hq : Monic q) (hpq : degree p < degree q) : Monic (p + q) 
Arguments: {R : Type u} [Semiring R] {p q : R[X]} (hq : q.Monic) (hpq : p.degree < q.degree)
Goal: (p + q).Monic
-- Polynomial.Monic.of_mul_monic_left
theorem Monic.of_mul_monic_left (hp : p.Monic) (hpq : (p * q).Monic) : q.Monic 
Arguments: {R : Type u} [Semiring R] {p q : R[X]} (hp : p.Monic) (hpq : (p * q).Monic)
Goal: q.Monic
-- Polynomial.Monic.of_mul_monic_right
theorem Monic.of_mul_monic_right (hq : q.Monic) (hpq : (p * q).Monic) : p.Monic 
Arguments: {R : Type u} [Semiring R] {p q : R[X]} (hq : q.Monic) (hpq : (p * q).Monic)
Goal: p.Monic
-- Polynomial.Monic.natDegree_eq_zero_iff_eq_one
@[simp]
theorem natDegree_eq_zero_iff_eq_one (hp : p.Monic) : p.natDegree = 0 ↔ p = 1 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (hp : p.Monic)
Goal: p.natDegree = 0 ↔ p = 1
-- Polynomial.Monic.degree_le_zero_iff_eq_one
@[simp]
theorem degree_le_zero_iff_eq_one (hp : p.Monic) : p.degree ≤ 0 ↔ p = 1 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (hp : p.Monic)
Goal: p.degree ≤ 0 ↔ p = 1
-- Polynomial.Monic.natDegree_mul
theorem natDegree_mul (hp : p.Monic) (hq : q.Monic) :
    (p * q).natDegree = p.natDegree + q.natDegree 
Arguments: {R : Type u} [Semiring R] {p q : R[X]} (hp : p.Monic) (hq : q.Monic)
Goal: (p * q).natDegree = p.natDegree + q.natDegree
-- Polynomial.Monic.degree_mul_comm
theorem degree_mul_comm (hp : p.Monic) (q : R[X]) : (p * q).degree = (q * p).degree 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (hp : p.Monic) (q : R[X])
Goal: (p * q).degree = (q * p).degree
-- Polynomial.Monic.natDegree_mul'
nonrec theorem natDegree_mul' (hp : p.Monic) (hq : q ≠ 0) :
    (p * q).natDegree = p.natDegree + q.natDegree 
Arguments: {R : Type u} [Semiring R] {p q : R[X]} (hp : p.Monic) (hq : q ≠ 0)
Goal: (p * q).natDegree = p.natDegree + q.natDegree
-- Polynomial.Monic.natDegree_mul_comm
theorem natDegree_mul_comm (hp : p.Monic) (q : R[X]) : (p * q).natDegree = (q * p).natDegree 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (hp : p.Monic) (q : R[X])
Goal: (p * q).natDegree = (q * p).natDegree
-- Polynomial.Monic.not_dvd_of_natDegree_lt
theorem not_dvd_of_natDegree_lt (hp : Monic p) (h0 : q ≠ 0) (hl : natDegree q < natDegree p) :
    ¬p ∣ q 
Arguments: {R : Type u} [Semiring R] {p q : R[X]} (hp : p.Monic) (h0 : q ≠ 0) (hl : q.natDegree < p.natDegree)
Goal: ¬p ∣ q
-- Polynomial.Monic.not_dvd_of_degree_lt
theorem not_dvd_of_degree_lt (hp : Monic p) (h0 : q ≠ 0) (hl : degree q < degree p) : ¬p ∣ q 
Arguments: {R : Type u} [Semiring R] {p q : R[X]} (hp : p.Monic) (h0 : q ≠ 0) (hl : q.degree < p.degree)
Goal: ¬p ∣ q
-- Polynomial.Monic.nextCoeff_mul
theorem nextCoeff_mul (hp : Monic p) (hq : Monic q) :
    nextCoeff (p * q) = nextCoeff p + nextCoeff q 
Arguments: {R : Type u} [Semiring R] {p q : R[X]} (hp : p.Monic) (hq : q.Monic)
Goal: (p * q).nextCoeff = p.nextCoeff + q.nextCoeff
-- Polynomial.Monic.nextCoeff_pow
theorem nextCoeff_pow (hp : p.Monic) (n : ℕ) : (p ^ n).nextCoeff = n • p.nextCoeff 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (hp : p.Monic) (n : ℕ)
Goal: (p ^ n).nextCoeff = n • p.nextCoeff
-- Polynomial.Monic.eq_one_of_map_eq_one
theorem eq_one_of_map_eq_one {S : Type*} [Semiring S] [Nontrivial S] (f : R →+* S) (hp : p.Monic)
    (map_eq : p.map f = 1) : p = 1 
Arguments: {R : Type u} [Semiring R] {p : R[X]} {S : Type u_1} [Semiring S] [Nontrivial S] (f : R →+* S) (hp : p.Monic) (map_eq : Polynomial.map f p = 1)
Goal: p = 1
-- Polynomial.Monic.natDegree_pow
theorem natDegree_pow (hp : p.Monic) (n : ℕ) : (p ^ n).natDegree = n * p.natDegree 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (hp : p.Monic) (n : ℕ)
Goal: (p ^ n).natDegree = n * p.natDegree
-- Polynomial.natDegree_pow_X_add_C
@[simp]
theorem natDegree_pow_X_add_C [Nontrivial R] (n : ℕ) (r : R) : ((X + C r) ^ n).natDegree = n 
Arguments: {R : Type u} [Semiring R] [Nontrivial R] (n : ℕ) (r : R)
Goal: ((Polynomial.X + Polynomial.C r) ^ n).natDegree = n
-- Polynomial.Monic.eq_one_of_isUnit
theorem Monic.eq_one_of_isUnit (hm : Monic p) (hpu : IsUnit p) : p = 1 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (hm : p.Monic) (hpu : IsUnit p)
Goal: p = 1
-- Polynomial.Monic.isUnit_iff
theorem Monic.isUnit_iff (hm : p.Monic) : IsUnit p ↔ p = 1 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (hm : p.Monic)
Goal: IsUnit p ↔ p = 1
-- Polynomial.eq_of_monic_of_associated
theorem eq_of_monic_of_associated (hp : p.Monic) (hq : q.Monic) (hpq : Associated p q) : p = q 
Arguments: {R : Type u} [Semiring R] {p q : R[X]} (hp : p.Monic) (hq : q.Monic) (hpq : Associated p q)
Goal: p = q
-- Polynomial.monic_multiset_prod_of_monic
theorem monic_multiset_prod_of_monic (t : Multiset ι) (f : ι → R[X]) (ht : ∀ i ∈ t, Monic (f i)) :
    Monic (t.map f).prod 
Arguments: {R : Type u} {ι : Type y} [CommSemiring R] (t : Multiset ι) (f : ι → R[X]) (ht : ∀ i ∈ t, (f i).Monic)
Goal: (Multiset.map f t).prod.Monic
-- Polynomial.monic_prod_of_monic
theorem monic_prod_of_monic (s : Finset ι) (f : ι → R[X]) (hs : ∀ i ∈ s, Monic (f i)) :
    Monic (∏ i ∈ s, f i) 
Arguments: {R : Type u} {ι : Type y} [CommSemiring R] (s : Finset ι) (f : ι → R[X]) (hs : ∀ i ∈ s, (f i).Monic)
Goal: (∏ i ∈ s, f i).Monic
-- Polynomial.Monic.nextCoeff_multiset_prod
theorem Monic.nextCoeff_multiset_prod (t : Multiset ι) (f : ι → R[X]) (h : ∀ i ∈ t, Monic (f i)) :
    nextCoeff (t.map f).prod = (t.map fun i => nextCoeff (f i)).sum 
Arguments: {R : Type u} {ι : Type y} [CommSemiring R] (t : Multiset ι) (f : ι → R[X]) (h : ∀ i ∈ t, (f i).Monic)
Goal: (Multiset.map f t).prod.nextCoeff = (Multiset.map (fun i => (f i).nextCoeff) t).sum
-- Polynomial.Monic.nextCoeff_prod
theorem Monic.nextCoeff_prod (s : Finset ι) (f : ι → R[X]) (h : ∀ i ∈ s, Monic (f i)) :
    nextCoeff (∏ i ∈ s, f i) = ∑ i ∈ s, nextCoeff (f i) 
Arguments: {R : Type u} {ι : Type y} [CommSemiring R] (s : Finset ι) (f : ι → R[X]) (h : ∀ i ∈ s, (f i).Monic)
Goal: (∏ i ∈ s, f i).nextCoeff = ∑ i ∈ s, (f i).nextCoeff
-- Polynomial.Monic.natDegree_map
@[simp]
theorem Monic.natDegree_map [Semiring S] [Nontrivial S] {P : R[X]} (hmo : P.Monic) (f : R →+* S) :
    (P.map f).natDegree = P.natDegree 
Arguments: {R : Type u} {S : Type v} [Semiring R] [Semiring S] [Nontrivial S] {P : R[X]} (hmo : P.Monic) (f : R →+* S)
Goal: (Polynomial.map f P).natDegree = P.natDegree
-- Polynomial.Monic.degree_map
@[simp]
theorem Monic.degree_map [Semiring S] [Nontrivial S] {P : R[X]} (hmo : P.Monic) (f : R →+* S) :
    (P.map f).degree = P.degree 
Arguments: {R : Type u} {S : Type v} [Semiring R] [Semiring S] [Nontrivial S] {P : R[X]} (hmo : P.Monic) (f : R →+* S)
Goal: (Polynomial.map f P).degree = P.degree
-- Polynomial.degree_map_eq_of_injective
theorem degree_map_eq_of_injective (hf : Injective f) (p : R[X]) : degree (p.map f) = degree p 
Arguments: {R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R →+* S} (hf : Function.Injective ⇑f) (p : R[X])
Goal: (Polynomial.map f p).degree = p.degree
-- Polynomial.natDegree_map_eq_of_injective
theorem natDegree_map_eq_of_injective (hf : Injective f) (p : R[X]) :
    natDegree (p.map f) = natDegree p 
Arguments: {R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R →+* S} (hf : Function.Injective ⇑f) (p : R[X])
Goal: (Polynomial.map f p).natDegree = p.natDegree
-- Polynomial.leadingCoeff_map'
theorem leadingCoeff_map' (hf : Injective f) (p : R[X]) :
    leadingCoeff (p.map f) = f (leadingCoeff p) 
Arguments: {R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R →+* S} (hf : Function.Injective ⇑f) (p : R[X])
Goal: (Polynomial.map f p).leadingCoeff = f p.leadingCoeff
-- Polynomial.nextCoeff_map
theorem nextCoeff_map (hf : Injective f) (p : R[X]) : (p.map f).nextCoeff = f p.nextCoeff 
Arguments: {R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R →+* S} (hf : Function.Injective ⇑f) (p : R[X])
Goal: (Polynomial.map f p).nextCoeff = f p.nextCoeff
-- Polynomial.leadingCoeff_of_injective
theorem leadingCoeff_of_injective (hf : Injective f) (p : R[X]) :
    leadingCoeff (p.map f) = f (leadingCoeff p) 
Arguments: {R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R →+* S} (hf : Function.Injective ⇑f) (p : R[X])
Goal: (Polynomial.map f p).leadingCoeff = f p.leadingCoeff
-- Polynomial.monic_of_injective
theorem monic_of_injective (hf : Injective f) {p : R[X]} (hp : (p.map f).Monic) : p.Monic 
Arguments: {R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R →+* S} (hf : Function.Injective ⇑f) {p : R[X]} (hp : (Polynomial.map f p).Monic)
Goal: p.Monic
-- Function.Injective.monic_map_iff
theorem _root_.Function.Injective.monic_map_iff (hf : Injective f) {p : R[X]} :
    p.Monic ↔ (p.map f).Monic 
Arguments: {R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R →+* S} (hf : Function.Injective ⇑f) {p : R[X]}
Goal: p.Monic ↔ (Polynomial.map f p).Monic
-- Polynomial.monic_X_sub_C
theorem monic_X_sub_C (x : R) : Monic (X - C x) 
Arguments: {R : Type u} [Ring R] (x : R)
Goal: (Polynomial.X - Polynomial.C x).Monic
-- Polynomial.monic_X_pow_sub
theorem monic_X_pow_sub {n : ℕ} (H : degree p ≤ n) : Monic (X ^ (n + 1) - p) 
Arguments: {R : Type u} [Ring R] {p : R[X]} {n : ℕ} (H : p.degree ≤ ↑n)
Goal: (Polynomial.X ^ (n + 1) - p).Monic
-- Polynomial.monic_X_pow_sub_C
theorem monic_X_pow_sub_C {R : Type u} [Ring R] (a : R) {n : ℕ} (h : n ≠ 0) :
    (X ^ n - C a).Monic 
Arguments: {R : Type u} [Ring R] (a : R) {n : ℕ} (h : n ≠ 0)
Goal: (Polynomial.X ^ n - Polynomial.C a).Monic
-- Polynomial.not_isUnit_X_pow_sub_one
theorem not_isUnit_X_pow_sub_one (R : Type*) [CommRing R] [Nontrivial R] (n : ℕ) :
    ¬IsUnit (X ^ n - 1 : R[X]) 
Arguments: (R : Type u_1) [CommRing R] [Nontrivial R] (n : ℕ)
Goal: ¬IsUnit (Polynomial.X ^ n - 1)
-- Polynomial.Monic.sub_of_left
theorem Monic.sub_of_left {p q : R[X]} (hp : Monic p) (hpq : degree q < degree p) :
    Monic (p - q) 
Arguments: {R : Type u} [Ring R] {p q : R[X]} (hp : p.Monic) (hpq : q.degree < p.degree)
Goal: (p - q).Monic
-- Polynomial.Monic.sub_of_right
theorem Monic.sub_of_right {p q : R[X]} (hq : q.leadingCoeff = -1) (hpq : degree p < degree q) :
    Monic (p - q) 
Arguments: {R : Type u} [Ring R] {p q : R[X]} (hq : q.leadingCoeff = -1) (hpq : p.degree < q.degree)
Goal: (p - q).Monic
-- Polynomial.not_monic_zero
@[simp]
theorem not_monic_zero : ¬Monic (0 : R[X]) 
Arguments: {R : Type u} [Semiring R] [Nontrivial R]
Goal: ¬Polynomial.Monic 0
-- Polynomial.Monic.mul_left_ne_zero
theorem Monic.mul_left_ne_zero (hp : Monic p) {q : R[X]} (hq : q ≠ 0) : q * p ≠ 0 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (hp : p.Monic) {q : R[X]} (hq : q ≠ 0)
Goal: q * p ≠ 0
-- Polynomial.Monic.mul_right_ne_zero
theorem Monic.mul_right_ne_zero (hp : Monic p) {q : R[X]} (hq : q ≠ 0) : p * q ≠ 0 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (hp : p.Monic) {q : R[X]} (hq : q ≠ 0)
Goal: p * q ≠ 0
-- Polynomial.Monic.mul_natDegree_lt_iff
theorem Monic.mul_natDegree_lt_iff (h : Monic p) {q : R[X]} :
    (p * q).natDegree < p.natDegree ↔ p ≠ 1 ∧ q = 0 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (h : p.Monic) {q : R[X]}
Goal: (p * q).natDegree < p.natDegree ↔ p ≠ 1 ∧ q = 0
-- Polynomial.Monic.mul_right_eq_zero_iff
theorem Monic.mul_right_eq_zero_iff (h : Monic p) {q : R[X]} : p * q = 0 ↔ q = 0 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (h : p.Monic) {q : R[X]}
Goal: p * q = 0 ↔ q = 0
-- Polynomial.Monic.mul_left_eq_zero_iff
theorem Monic.mul_left_eq_zero_iff (h : Monic p) {q : R[X]} : q * p = 0 ↔ q = 0 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (h : p.Monic) {q : R[X]}
Goal: q * p = 0 ↔ q = 0
-- Polynomial.Monic.isRegular
theorem Monic.isRegular {R : Type*} [Ring R] {p : R[X]} (hp : Monic p) : IsRegular p 
Arguments: {R : Type u_1} [Ring R] {p : R[X]} (hp : p.Monic)
Goal: IsRegular p
-- Polynomial.degree_smul_of_smul_regular
theorem degree_smul_of_smul_regular {S : Type*} [Monoid S] [DistribMulAction S R] {k : S}
    (p : R[X]) (h : IsSMulRegular R k) : (k • p).degree = p.degree 
Arguments: {R : Type u} [Semiring R] {S : Type u_1} [Monoid S] [DistribMulAction S R] {k : S} (p : R[X]) (h : IsSMulRegular R k)
Goal: (k • p).degree = p.degree
-- Polynomial.natDegree_smul_of_smul_regular
theorem natDegree_smul_of_smul_regular {S : Type*} [Monoid S] [DistribMulAction S R] {k : S}
    (p : R[X]) (h : IsSMulRegular R k) : (k • p).natDegree = p.natDegree 
Arguments: {R : Type u} [Semiring R] {S : Type u_1} [Monoid S] [DistribMulAction S R] {k : S} (p : R[X]) (h : IsSMulRegular R k)
Goal: (k • p).natDegree = p.natDegree
-- Polynomial.leadingCoeff_smul_of_smul_regular
theorem leadingCoeff_smul_of_smul_regular {S : Type*} [Monoid S] [DistribMulAction S R] {k : S}
    (p : R[X]) (h : IsSMulRegular R k) : (k • p).leadingCoeff = k • p.leadingCoeff 
Arguments: {R : Type u} [Semiring R] {S : Type u_1} [Monoid S] [DistribMulAction S R] {k : S} (p : R[X]) (h : IsSMulRegular R k)
Goal: (k • p).leadingCoeff = k • p.leadingCoeff
-- Polynomial.monic_of_isUnit_leadingCoeff_inv_smul
theorem monic_of_isUnit_leadingCoeff_inv_smul (h : IsUnit p.leadingCoeff) :
    Monic (h.unit⁻¹ • p) 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (h : IsUnit p.leadingCoeff)
Goal: (h.unit⁻¹ • p).Monic
-- Polynomial.isUnit_leadingCoeff_mul_right_eq_zero_iff
theorem isUnit_leadingCoeff_mul_right_eq_zero_iff (h : IsUnit p.leadingCoeff) {q : R[X]} :
    p * q = 0 ↔ q = 0 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (h : IsUnit p.leadingCoeff) {q : R[X]}
Goal: p * q = 0 ↔ q = 0
-- Polynomial.isUnit_leadingCoeff_mul_left_eq_zero_iff
theorem isUnit_leadingCoeff_mul_left_eq_zero_iff (h : IsUnit p.leadingCoeff) {q : R[X]} :
    q * p = 0 ↔ q = 0 
Arguments: {R : Type u} [Semiring R] {p : R[X]} (h : IsUnit p.leadingCoeff) {q : R[X]}
Goal: q * p = 0 ↔ q = 0
-- discrim_neg
@[simp] lemma discrim_neg [Ring R] (a b c : R) : discrim (-a) (-b) (-c) = discrim a b c 
Arguments: {R : Type u_1} [Ring R] (a b c : R)
Goal: discrim (-a) (-b) (-c) = discrim a b c
-- discrim_eq_sq_of_quadratic_eq_zero
lemma discrim_eq_sq_of_quadratic_eq_zero {x : R} (h : a * x * x + b * x + c = 0) :
    discrim a b c = (2 * a * x + b) ^ 2 
Arguments: {R : Type u_1} [CommRing R] {a b c x : R} (h : a * x * x + b * x + c = 0)
Goal: discrim a b c = (2 * a * x + b) ^ 2
-- quadratic_eq_zero_iff_discrim_eq_sq
theorem quadratic_eq_zero_iff_discrim_eq_sq [NeZero (2 : R)] [NoZeroDivisors R]
    (ha : a ≠ 0) (x : R) :
    a * x * x + b * x + c = 0 ↔ discrim a b c = (2 * a * x + b) ^ 2 
Arguments: {R : Type u_1} [CommRing R] {a b c : R} [NeZero 2] [NoZeroDivisors R] (ha : a ≠ 0) (x : R)
Goal: a * x * x + b * x + c = 0 ↔ discrim a b c = (2 * a * x + b) ^ 2
-- quadratic_ne_zero_of_discrim_ne_sq
theorem quadratic_ne_zero_of_discrim_ne_sq (h : ∀ s : R, discrim a b c ≠ s^2) (x : R) :
    a * x * x + b * x + c ≠ 0 
Arguments: {R : Type u_1} [CommRing R] {a b c : R} (h : ∀ (s : R), discrim a b c ≠ s ^ 2) (x : R)
Goal: a * x * x + b * x + c ≠ 0
-- quadratic_eq_zero_iff
theorem quadratic_eq_zero_iff (ha : a ≠ 0) {s : K} (h : discrim a b c = s * s) (x : K) :
    a * x * x + b * x + c = 0 ↔ x = (-b + s) / (2 * a) ∨ x = (-b - s) / (2 * a) 
Arguments: {K : Type u_1} [Field K] [NeZero 2] {a b c : K} (ha : a ≠ 0) {s : K} (h : discrim a b c = s * s) (x : K)
Goal: a * x * x + b * x + c = 0 ↔ x = (-b + s) / (2 * a) ∨ x = (-b - s) / (2 * a)
-- exists_quadratic_eq_zero
theorem exists_quadratic_eq_zero (ha : a ≠ 0) (h : ∃ s, discrim a b c = s * s) :
    ∃ x, a * x * x + b * x + c = 0 
Arguments: {K : Type u_1} [Field K] [NeZero 2] {a b c : K} (ha : a ≠ 0) (h : ∃ s, discrim a b c = s * s)
Goal: ∃ x, a * x * x + b * x + c = 0
-- quadratic_eq_zero_iff_of_discrim_eq_zero
theorem quadratic_eq_zero_iff_of_discrim_eq_zero (ha : a ≠ 0) (h : discrim a b c = 0) (x : K) :
    a * x * x + b * x + c = 0 ↔ x = -b / (2 * a) 
Arguments: {K : Type u_1} [Field K] [NeZero 2] {a b c : K} (ha : a ≠ 0) (h : discrim a b c = 0) (x : K)
Goal: a * x * x + b * x + c = 0 ↔ x = -b / (2 * a)
-- discrim_le_zero
theorem discrim_le_zero (h : ∀ x : K, 0 ≤ a * x * x + b * x + c) : discrim a b c ≤ 0 
Arguments: {K : Type u_1} [LinearOrderedField K] {a b c : K} (h : ∀ (x : K), 0 ≤ a * x * x + b * x + c)
Goal: discrim a b c ≤ 0
-- discrim_le_zero_of_nonpos
lemma discrim_le_zero_of_nonpos (h : ∀ x : K, a * x * x + b * x + c ≤ 0) : discrim a b c ≤ 0 
Arguments: {K : Type u_1} [LinearOrderedField K] {a b c : K} (h : ∀ (x : K), a * x * x + b * x + c ≤ 0)
Goal: discrim a b c ≤ 0
-- discrim_lt_zero
theorem discrim_lt_zero (ha : a ≠ 0) (h : ∀ x : K, 0 < a * x * x + b * x + c) :
    discrim a b c < 0 
Arguments: {K : Type u_1} [LinearOrderedField K] {a b c : K} (ha : a ≠ 0) (h : ∀ (x : K), 0 < a * x * x + b * x + c)
Goal: discrim a b c < 0
-- discrim_lt_zero_of_neg
lemma discrim_lt_zero_of_neg (ha : a ≠ 0) (h : ∀ x : K, a * x * x + b * x + c < 0) :
    discrim a b c < 0 
Arguments: {K : Type u_1} [LinearOrderedField K] {a b c : K} (ha : a ≠ 0) (h : ∀ (x : K), a * x * x + b * x + c < 0)
Goal: discrim a b c < 0
-- OrderRingHom.monotone'
structure OrderRingHom (α β : Type*) [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β]
  [Preorder β] extends α →+* β where
    monotone' : Monotone toFun
Arguments: {α : Type u_6} {β : Type u_7} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (self : α →+*o β)
Goal: Monotone (↑↑self.toRingHom).toFun
-- OrderRingIso.map_le_map_iff'
structure OrderRingIso (α β : Type*) [Mul α] [Mul β] [Add α] [Add β] [LE α] [LE β] extends
  α ≃+* β where
    map_le_map_iff' {a b : α} : toFun a ≤ toFun b ↔ a ≤ b
Arguments: {α : Type u_6} {β : Type u_7} [Mul α] [Mul β] [Add α] [Add β] [LE α] [LE β] (self : α ≃+*o β) {a b : α}
Goal: self.toFun a ≤ self.toFun b ↔ a ≤ b
-- OrderRingHom.toFun_eq_coe
theorem toFun_eq_coe (f : α →+*o β) : f.toFun = f 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β)
Goal: (↑↑f.toRingHom).toFun = ⇑f
-- OrderRingHom.ext
@[ext]
theorem ext {f g : α →+*o β} (h : ∀ a, f a = g a) : f = g 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] {f g : α →+*o β} (h : ∀ (a : α), f a = g a)
Goal: f = g
-- OrderRingHom.toRingHom_eq_coe
@[simp]
theorem toRingHom_eq_coe (f : α →+*o β) : f.toRingHom = f 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β)
Goal: f.toRingHom = ↑f
-- OrderRingHom.toOrderAddMonoidHom_eq_coe
@[simp]
theorem toOrderAddMonoidHom_eq_coe (f : α →+*o β) : f.toOrderAddMonoidHom = f 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β)
Goal: f.toOrderAddMonoidHom = ↑f
-- OrderRingHom.toOrderMonoidWithZeroHom_eq_coe
@[simp]
theorem toOrderMonoidWithZeroHom_eq_coe (f : α →+*o β) : f.toOrderMonoidWithZeroHom = f 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β)
Goal: f.toOrderMonoidWithZeroHom = ↑f
-- OrderRingHom.coe_coe_ringHom
@[simp]
theorem coe_coe_ringHom (f : α →+*o β) : ⇑(f : α →+* β) = f 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β)
Goal: ⇑↑f = ⇑f
-- OrderRingHom.coe_coe_orderAddMonoidHom
@[simp]
theorem coe_coe_orderAddMonoidHom (f : α →+*o β) : ⇑(f : α →+o β) = f 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β)
Goal: ⇑↑f = ⇑f
-- OrderRingHom.coe_coe_orderMonoidWithZeroHom
@[simp]
theorem coe_coe_orderMonoidWithZeroHom (f : α →+*o β) : ⇑(f : α →*₀o β) = f 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β)
Goal: ⇑↑f = ⇑f
-- OrderRingHom.coe_ringHom_apply
@[norm_cast]
theorem coe_ringHom_apply (f : α →+*o β) (a : α) : (f : α →+* β) a = f a 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β) (a : α)
Goal: ↑f a = f a
-- OrderRingHom.coe_orderAddMonoidHom_apply
@[norm_cast]
theorem coe_orderAddMonoidHom_apply (f : α →+*o β) (a : α) : (f : α →+o β) a = f a 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β) (a : α)
Goal: ↑f a = f a
-- OrderRingHom.coe_orderMonoidWithZeroHom_apply
@[norm_cast]
theorem coe_orderMonoidWithZeroHom_apply (f : α →+*o β) (a : α) : (f : α →*₀o β) a = f a 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β) (a : α)
Goal: ↑f a = f a
-- OrderRingHom.coe_copy
@[simp]
theorem coe_copy (f : α →+*o β) (f' : α → β) (h : f' = f) : ⇑(f.copy f' h) = f' 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β) (f' : α → β) (h : f' = ⇑f)
Goal: ⇑(f.copy f' h) = f'
-- OrderRingHom.copy_eq
theorem copy_eq (f : α →+*o β) (f' : α → β) (h : f' = f) : f.copy f' h = f 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β) (f' : α → β) (h : f' = ⇑f)
Goal: f.copy f' h = f
-- OrderRingHom.coe_id
@[simp]
theorem coe_id : ⇑(OrderRingHom.id α) = id 
Arguments: (α : Type u_2) [NonAssocSemiring α] [Preorder α]
Goal: ⇑(OrderRingHom.id α) = id
-- OrderRingHom.id_apply
@[simp]
theorem id_apply (a : α) : OrderRingHom.id α a = a 
Arguments: {α : Type u_2} [NonAssocSemiring α] [Preorder α] (a : α)
Goal: (OrderRingHom.id α) a = a
-- OrderRingHom.coe_ringHom_id
@[simp]
theorem coe_ringHom_id : (OrderRingHom.id α : α →+* α) = RingHom.id α 
Arguments: {α : Type u_2} [NonAssocSemiring α] [Preorder α]
Goal: ↑(OrderRingHom.id α) = RingHom.id α
-- OrderRingHom.coe_orderAddMonoidHom_id
@[simp]
theorem coe_orderAddMonoidHom_id : (OrderRingHom.id α : α →+o α) = OrderAddMonoidHom.id α 
Arguments: {α : Type u_2} [NonAssocSemiring α] [Preorder α]
Goal: ↑(OrderRingHom.id α) = OrderAddMonoidHom.id α
-- OrderRingHom.coe_orderMonoidWithZeroHom_id
@[simp]
theorem coe_orderMonoidWithZeroHom_id :
    (OrderRingHom.id α : α →*₀o α) = OrderMonoidWithZeroHom.id α 
Arguments: {α : Type u_2} [NonAssocSemiring α] [Preorder α]
Goal: ↑(OrderRingHom.id α) = OrderMonoidWithZeroHom.id α
-- OrderRingHom.coe_comp
@[simp]
theorem coe_comp (f : β →+*o γ) (g : α →+*o β) : ⇑(f.comp g) = f ∘ g 
Arguments: {α : Type u_2} {β : Type u_3} {γ : Type u_4} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] [NonAssocSemiring γ] [Preorder γ] (f : β →+*o γ) (g : α →+*o β)
Goal: ⇑(f.comp g) = ⇑f ∘ ⇑g
-- OrderRingHom.comp_apply
@[simp]
theorem comp_apply (f : β →+*o γ) (g : α →+*o β) (a : α) : f.comp g a = f (g a) 
Arguments: {α : Type u_2} {β : Type u_3} {γ : Type u_4} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] [NonAssocSemiring γ] [Preorder γ] (f : β →+*o γ) (g : α →+*o β) (a : α)
Goal: (f.comp g) a = f (g a)
-- OrderRingHom.comp_assoc
theorem comp_assoc (f : γ →+*o δ) (g : β →+*o γ) (h : α →+*o β) :
    (f.comp g).comp h = f.comp (g.comp h) 
Arguments: {α : Type u_2} {β : Type u_3} {γ : Type u_4} {δ : Type u_5} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] [NonAssocSemiring γ] [Preorder γ] [NonAssocSemiring δ] [Preorder δ] (f : γ →+*o δ) (g : β →+*o γ) (h : α →+*o β)
Goal: (f.comp g).comp h = f.comp (g.comp h)
-- OrderRingHom.comp_id
@[simp]
theorem comp_id (f : α →+*o β) : f.comp (OrderRingHom.id α) = f 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β)
Goal: f.comp (OrderRingHom.id α) = f
-- OrderRingHom.id_comp
@[simp]
theorem id_comp (f : α →+*o β) : (OrderRingHom.id β).comp f = f 
Arguments: {α : Type u_2} {β : Type u_3} [NonAssocSemiring α] [Preorder α] [NonAssocSemiring β] [Preorder β] (f : α →+*o β)
Goal: (OrderRingHom.id β).comp f = f