ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- IsAdjoinRootMonic.Monic
-- @[nolint has_nonempty_instance] -- Porting note: This linter does not exist yet.
structure IsAdjoinRootMonic {R : Type u} (S : Type v) [CommSemiring R] [Semiring S] [Algebra R S]
    (f : R[X]) extends IsAdjoinRoot S f where
  Monic : Monic f
Arguments: {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {f : R[X]} (self : IsAdjoinRootMonic S f)
Goal: f.Monic
-- IsAdjoinRoot.subsingleton
theorem subsingleton (h : IsAdjoinRoot S f) [Subsingleton R] : Subsingleton S 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRoot S f) [Subsingleton R]
Goal: Subsingleton S
-- IsAdjoinRoot.algebraMap_apply
theorem algebraMap_apply (h : IsAdjoinRoot S f) (x : R) :
    algebraMap R S x = h.map (Polynomial.C x) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRoot S f) (x : R)
Goal: (algebraMap R S) x = h.map (Polynomial.C x)
-- IsAdjoinRoot.mem_ker_map
@[simp]
theorem mem_ker_map (h : IsAdjoinRoot S f) {p} : p ∈ RingHom.ker h.map ↔ f ∣ p 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRoot S f) {p : R[X]}
Goal: p ∈ RingHom.ker h.map ↔ f ∣ p
-- IsAdjoinRoot.map_eq_zero_iff
theorem map_eq_zero_iff (h : IsAdjoinRoot S f) {p} : h.map p = 0 ↔ f ∣ p 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRoot S f) {p : R[X]}
Goal: h.map p = 0 ↔ f ∣ p
-- IsAdjoinRoot.map_X
@[simp]
theorem map_X (h : IsAdjoinRoot S f) : h.map X = h.root 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRoot S f)
Goal: h.map Polynomial.X = h.root
-- IsAdjoinRoot.map_self
@[simp]
theorem map_self (h : IsAdjoinRoot S f) : h.map f = 0 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRoot S f)
Goal: h.map f = 0
-- IsAdjoinRoot.aeval_eq
@[simp]
theorem aeval_eq (h : IsAdjoinRoot S f) (p : R[X]) : aeval h.root p = h.map p 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRoot S f) (p : R[X])
Goal: (Polynomial.aeval h.root) p = h.map p
-- IsAdjoinRoot.aeval_root
theorem aeval_root (h : IsAdjoinRoot S f) : aeval h.root f = 0 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRoot S f)
Goal: (Polynomial.aeval h.root) f = 0
-- IsAdjoinRoot.map_repr
theorem map_repr (h : IsAdjoinRoot S f) (x : S) : h.map (h.repr x) = x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRoot S f) (x : S)
Goal: h.map (h.repr x) = x
-- IsAdjoinRoot.repr_zero_mem_span
theorem repr_zero_mem_span (h : IsAdjoinRoot S f) : h.repr 0 ∈ Ideal.span ({f} : Set R[X]) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRoot S f)
Goal: h.repr 0 ∈ Ideal.span {f}
-- IsAdjoinRoot.repr_add_sub_repr_add_repr_mem_span
theorem repr_add_sub_repr_add_repr_mem_span (h : IsAdjoinRoot S f) (x y : S) :
    h.repr (x + y) - (h.repr x + h.repr y) ∈ Ideal.span ({f} : Set R[X]) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRoot S f) (x y : S)
Goal: h.repr (x + y) - (h.repr x + h.repr y) ∈ Ideal.span {f}
-- IsAdjoinRoot.ext_map
theorem ext_map (h h' : IsAdjoinRoot S f) (eq : ∀ x, h.map x = h'.map x) : h = h' 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h h' : IsAdjoinRoot S f) (eq : ∀ (x : R[X]), h.map x = h'.map x)
Goal: h = h'
-- IsAdjoinRoot.ext
@[ext]
theorem ext (h h' : IsAdjoinRoot S f) (eq : h.root = h'.root) : h = h' 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h h' : IsAdjoinRoot S f) (eq : h.root = h'.root)
Goal: h = h'
-- IsAdjoinRoot.eval₂_repr_eq_eval₂_of_map_eq
theorem eval₂_repr_eq_eval₂_of_map_eq (h : IsAdjoinRoot S f) (z : S) (w : R[X])
    (hzw : h.map w = z) : (h.repr z).eval₂ i x = w.eval₂ i x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] {T : Type u_1} [CommRing T] {i : R →+* T} {x : T} (hx : Polynomial.eval₂ i x f = 0) (h : IsAdjoinRoot S f) (z : S) (w : R[X]) (hzw : h.map w = z)
Goal: Polynomial.eval₂ i x (h.repr z) = Polynomial.eval₂ i x w
-- IsAdjoinRoot.lift_map
@[simp]
theorem lift_map (h : IsAdjoinRoot S f) (z : R[X]) : h.lift i x hx (h.map z) = z.eval₂ i x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] {T : Type u_1} [CommRing T] {i : R →+* T} {x : T} (hx : Polynomial.eval₂ i x f = 0) (h : IsAdjoinRoot S f) (z : R[X])
Goal: (IsAdjoinRoot.lift i x hx h) (h.map z) = Polynomial.eval₂ i x z
-- IsAdjoinRoot.lift_root
@[simp]
theorem lift_root (h : IsAdjoinRoot S f) : h.lift i x hx h.root = x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] {T : Type u_1} [CommRing T] {i : R →+* T} {x : T} (hx : Polynomial.eval₂ i x f = 0) (h : IsAdjoinRoot S f)
Goal: (IsAdjoinRoot.lift i x hx h) h.root = x
-- IsAdjoinRoot.lift_algebraMap
@[simp]
theorem lift_algebraMap (h : IsAdjoinRoot S f) (a : R) :
    h.lift i x hx (algebraMap R S a) = i a 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] {T : Type u_1} [CommRing T] {i : R →+* T} {x : T} (hx : Polynomial.eval₂ i x f = 0) (h : IsAdjoinRoot S f) (a : R)
Goal: (IsAdjoinRoot.lift i x hx h) ((algebraMap R S) a) = i a
-- IsAdjoinRoot.apply_eq_lift
theorem apply_eq_lift (h : IsAdjoinRoot S f) (g : S →+* T) (hmap : ∀ a, g (algebraMap R S a) = i a)
    (hroot : g h.root = x) (a : S) : g a = h.lift i x hx a 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] {T : Type u_1} [CommRing T] {i : R →+* T} {x : T} (hx : Polynomial.eval₂ i x f = 0) (h : IsAdjoinRoot S f) (g : S →+* T) (hmap : ∀ (a : R), g ((algebraMap R S) a) = i a) (hroot : g h.root = x) (a : S)
Goal: g a = (IsAdjoinRoot.lift i x hx h) a
-- IsAdjoinRoot.eq_lift
theorem eq_lift (h : IsAdjoinRoot S f) (g : S →+* T) (hmap : ∀ a, g (algebraMap R S a) = i a)
    (hroot : g h.root = x) : g = h.lift i x hx 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] {T : Type u_1} [CommRing T] {i : R →+* T} {x : T} (hx : Polynomial.eval₂ i x f = 0) (h : IsAdjoinRoot S f) (g : S →+* T) (hmap : ∀ (a : R), g ((algebraMap R S) a) = i a) (hroot : g h.root = x)
Goal: g = IsAdjoinRoot.lift i x hx h
-- IsAdjoinRoot.coe_liftHom
@[simp]
theorem coe_liftHom (h : IsAdjoinRoot S f) :
    (h.liftHom x hx' : S →+* T) = h.lift (algebraMap R T) x hx' 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] {T : Type u_1} [CommRing T] {x : T} [Algebra R T] (hx' : (Polynomial.aeval x) f = 0) (h : IsAdjoinRoot S f)
Goal: ↑(IsAdjoinRoot.liftHom x hx' h) = IsAdjoinRoot.lift (algebraMap R T) x hx' h
-- IsAdjoinRoot.lift_algebraMap_apply
theorem lift_algebraMap_apply (h : IsAdjoinRoot S f) (z : S) :
    h.lift (algebraMap R T) x hx' z = h.liftHom x hx' z 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] {T : Type u_1} [CommRing T] {x : T} [Algebra R T] (hx' : (Polynomial.aeval x) f = 0) (h : IsAdjoinRoot S f) (z : S)
Goal: (IsAdjoinRoot.lift (algebraMap R T) x hx' h) z = (IsAdjoinRoot.liftHom x hx' h) z
-- IsAdjoinRoot.liftHom_map
@[simp]
theorem liftHom_map (h : IsAdjoinRoot S f) (z : R[X]) : h.liftHom x hx' (h.map z) = aeval x z 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] {T : Type u_1} [CommRing T] {x : T} [Algebra R T] (hx' : (Polynomial.aeval x) f = 0) (h : IsAdjoinRoot S f) (z : R[X])
Goal: (IsAdjoinRoot.liftHom x hx' h) (h.map z) = (Polynomial.aeval x) z
-- IsAdjoinRoot.liftHom_root
@[simp]
theorem liftHom_root (h : IsAdjoinRoot S f) : h.liftHom x hx' h.root = x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] {T : Type u_1} [CommRing T] {x : T} [Algebra R T] (hx' : (Polynomial.aeval x) f = 0) (h : IsAdjoinRoot S f)
Goal: (IsAdjoinRoot.liftHom x hx' h) h.root = x
-- IsAdjoinRoot.eq_liftHom
theorem eq_liftHom (h : IsAdjoinRoot S f) (g : S →ₐ[R] T) (hroot : g h.root = x) :
    g = h.liftHom x hx' 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] {T : Type u_1} [CommRing T] {x : T} [Algebra R T] (hx' : (Polynomial.aeval x) f = 0) (h : IsAdjoinRoot S f) (g : S →ₐ[R] T) (hroot : g h.root = x)
Goal: g = IsAdjoinRoot.liftHom x hx' h
-- AdjoinRoot.isAdjoinRoot_map_eq_mk
@[simp]
theorem isAdjoinRoot_map_eq_mk : (AdjoinRoot.isAdjoinRoot f).map = AdjoinRoot.mk f 
Arguments: {R : Type u} [CommRing R] (f : R[X])
Goal: (AdjoinRoot.isAdjoinRoot f).map = AdjoinRoot.mk f
-- AdjoinRoot.isAdjoinRootMonic_map_eq_mk
@[simp]
theorem isAdjoinRootMonic_map_eq_mk (hf : f.Monic) :
    (AdjoinRoot.isAdjoinRootMonic f hf).map = AdjoinRoot.mk f 
Arguments: {R : Type u} [CommRing R] (f : R[X]) (hf : f.Monic)
Goal: (AdjoinRoot.isAdjoinRootMonic f hf).map = AdjoinRoot.mk f
-- AdjoinRoot.isAdjoinRoot_root_eq_root
@[simp]
theorem isAdjoinRoot_root_eq_root : (AdjoinRoot.isAdjoinRoot f).root = AdjoinRoot.root f 
Arguments: {R : Type u} [CommRing R] (f : R[X])
Goal: (AdjoinRoot.isAdjoinRoot f).root = AdjoinRoot.root f
-- AdjoinRoot.isAdjoinRootMonic_root_eq_root
@[simp]
theorem isAdjoinRootMonic_root_eq_root (hf : Monic f) :
    (AdjoinRoot.isAdjoinRootMonic f hf).root = AdjoinRoot.root f 
Arguments: {R : Type u} [CommRing R] (f : R[X]) (hf : f.Monic)
Goal: (AdjoinRoot.isAdjoinRootMonic f hf).root = AdjoinRoot.root f
-- IsAdjoinRootMonic.map_modByMonic
theorem map_modByMonic (h : IsAdjoinRootMonic S f) (g : R[X]) : h.map (g %ₘ f) = h.map g 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (g : R[X])
Goal: h.map (g %ₘ f) = h.map g
-- IsAdjoinRootMonic.modByMonic_repr_map
theorem modByMonic_repr_map (h : IsAdjoinRootMonic S f) (g : R[X]) :
    h.repr (h.map g) %ₘ f = g %ₘ f 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (g : R[X])
Goal: h.repr (h.map g) %ₘ f = g %ₘ f
-- IsAdjoinRootMonic.modByMonicHom_map
@[simp]
theorem modByMonicHom_map (h : IsAdjoinRootMonic S f) (g : R[X]) :
    h.modByMonicHom (h.map g) = g %ₘ f 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (g : R[X])
Goal: h.modByMonicHom (h.map g) = g %ₘ f
-- IsAdjoinRootMonic.map_modByMonicHom
@[simp]
theorem map_modByMonicHom (h : IsAdjoinRootMonic S f) (x : S) : h.map (h.modByMonicHom x) = x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (x : S)
Goal: h.map (h.modByMonicHom x) = x
-- IsAdjoinRootMonic.modByMonicHom_root_pow
@[simp]
theorem modByMonicHom_root_pow (h : IsAdjoinRootMonic S f) {n : ℕ} (hdeg : n < natDegree f) :
    h.modByMonicHom (h.root ^ n) = X ^ n 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) {n : ℕ} (hdeg : n < f.natDegree)
Goal: h.modByMonicHom (h.root ^ n) = Polynomial.X ^ n
-- IsAdjoinRootMonic.modByMonicHom_root
@[simp]
theorem modByMonicHom_root (h : IsAdjoinRootMonic S f) (hdeg : 1 < natDegree f) :
    h.modByMonicHom h.root = X 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (hdeg : 1 < f.natDegree)
Goal: h.modByMonicHom h.root = Polynomial.X
-- IsAdjoinRootMonic.basis_apply
@[simp]
theorem basis_apply (h : IsAdjoinRootMonic S f) (i) : h.basis i = h.root ^ (i : ℕ) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (i : Fin f.natDegree)
Goal: h.basis i = h.root ^ ↑i
-- IsAdjoinRootMonic.deg_pos
theorem deg_pos [Nontrivial S] (h : IsAdjoinRootMonic S f) : 0 < natDegree f 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] [Nontrivial S] (h : IsAdjoinRootMonic S f)
Goal: 0 < f.natDegree
-- IsAdjoinRootMonic.deg_ne_zero
theorem deg_ne_zero [Nontrivial S] (h : IsAdjoinRootMonic S f) : natDegree f ≠ 0 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] [Nontrivial S] (h : IsAdjoinRootMonic S f)
Goal: f.natDegree ≠ 0
-- IsAdjoinRootMonic.powerBasis_dim
@[simps! gen dim basis]
def powerBasis (h : IsAdjoinRootMonic S f) : PowerBasis R S 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f)
Goal: h.powerBasis.dim = f.natDegree
-- IsAdjoinRootMonic.powerBasis_basis
@[simps! gen dim basis]
def powerBasis (h : IsAdjoinRootMonic S f) : PowerBasis R S 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f)
Goal: h.powerBasis.basis = h.basis
-- IsAdjoinRootMonic.powerBasis_gen
@[simps! gen dim basis]
def powerBasis (h : IsAdjoinRootMonic S f) : PowerBasis R S 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f)
Goal: h.powerBasis.gen = h.root
-- IsAdjoinRootMonic.basis_repr
@[simp]
theorem basis_repr (h : IsAdjoinRootMonic S f) (x : S) (i : Fin (natDegree f)) :
    h.basis.repr x i = (h.modByMonicHom x).coeff (i : ℕ) 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (x : S) (i : Fin f.natDegree)
Goal: (h.basis.repr x) i = (h.modByMonicHom x).coeff ↑i
-- IsAdjoinRootMonic.basis_one
theorem basis_one (h : IsAdjoinRootMonic S f) (hdeg : 1 < natDegree f) :
    h.basis ⟨1, hdeg⟩ = h.root 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (hdeg : 1 < f.natDegree)
Goal: h.basis ⟨1, hdeg⟩ = h.root
-- IsAdjoinRootMonic.liftPolyₗ_apply
@[simps!]
def liftPolyₗ {T : Type*} [AddCommGroup T] [Module R T] (h : IsAdjoinRootMonic S f)
    (g : R[X] →ₗ[R] T) : S →ₗ[R] T 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] {T : Type u_1} [AddCommGroup T] [Module R T] (h : IsAdjoinRootMonic S f) (g : R[X] →ₗ[R] T)
Goal: ∀ (a : S), (h.liftPolyₗ g) a = g (h.modByMonicHom a)
-- IsAdjoinRootMonic.coeff_apply_lt
theorem coeff_apply_lt (h : IsAdjoinRootMonic S f) (z : S) (i : ℕ) (hi : i < natDegree f) :
    h.coeff z i = h.basis.repr z ⟨i, hi⟩ 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (z : S) (i : ℕ) (hi : i < f.natDegree)
Goal: h.coeff z i = (h.basis.repr z) ⟨i, hi⟩
-- IsAdjoinRootMonic.coeff_apply_coe
theorem coeff_apply_coe (h : IsAdjoinRootMonic S f) (z : S) (i : Fin (natDegree f)) :
    h.coeff z i = h.basis.repr z i 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (z : S) (i : Fin f.natDegree)
Goal: h.coeff z ↑i = (h.basis.repr z) i
-- IsAdjoinRootMonic.coeff_apply_le
theorem coeff_apply_le (h : IsAdjoinRootMonic S f) (z : S) (i : ℕ) (hi : natDegree f ≤ i) :
    h.coeff z i = 0 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (z : S) (i : ℕ) (hi : f.natDegree ≤ i)
Goal: h.coeff z i = 0
-- IsAdjoinRootMonic.coeff_apply
theorem coeff_apply (h : IsAdjoinRootMonic S f) (z : S) (i : ℕ) :
    h.coeff z i = if hi : i < natDegree f then h.basis.repr z ⟨i, hi⟩ else 0 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (z : S) (i : ℕ)
Goal: h.coeff z i = if hi : i < f.natDegree then (h.basis.repr z) ⟨i, hi⟩ else 0
-- IsAdjoinRootMonic.coeff_root_pow
theorem coeff_root_pow (h : IsAdjoinRootMonic S f) {n} (hn : n < natDegree f) :
    h.coeff (h.root ^ n) = Pi.single n 1 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) {n : ℕ} (hn : n < f.natDegree)
Goal: h.coeff (h.root ^ n) = Pi.single n 1
-- IsAdjoinRootMonic.coeff_one
theorem coeff_one [Nontrivial S] (h : IsAdjoinRootMonic S f) : h.coeff 1 = Pi.single 0 1 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] [Nontrivial S] (h : IsAdjoinRootMonic S f)
Goal: h.coeff 1 = Pi.single 0 1
-- IsAdjoinRootMonic.coeff_root
theorem coeff_root (h : IsAdjoinRootMonic S f) (hdeg : 1 < natDegree f) :
    h.coeff h.root = Pi.single 1 1 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) (hdeg : 1 < f.natDegree)
Goal: h.coeff h.root = Pi.single 1 1
-- IsAdjoinRootMonic.coeff_algebraMap
theorem coeff_algebraMap [Nontrivial S] (h : IsAdjoinRootMonic S f) (x : R) :
    h.coeff (algebraMap R S x) = Pi.single 0 x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] [Nontrivial S] (h : IsAdjoinRootMonic S f) (x : R)
Goal: h.coeff ((algebraMap R S) x) = Pi.single 0 x
-- IsAdjoinRootMonic.ext_elem
theorem ext_elem (h : IsAdjoinRootMonic S f) ⦃x y : S⦄
    (hxy : ∀ i < natDegree f, h.coeff x i = h.coeff y i) : x = y 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) ⦃x y : S⦄ (hxy : ∀ i < f.natDegree, h.coeff x i = h.coeff y i)
Goal: x = y
-- IsAdjoinRootMonic.ext_elem_iff
theorem ext_elem_iff (h : IsAdjoinRootMonic S f) {x y : S} :
    x = y ↔ ∀ i < natDegree f, h.coeff x i = h.coeff y i 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f) {x y : S}
Goal: x = y ↔ ∀ i < f.natDegree, h.coeff x i = h.coeff y i
-- IsAdjoinRootMonic.coeff_injective
theorem coeff_injective (h : IsAdjoinRootMonic S f) : Function.Injective h.coeff 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f)
Goal: Function.Injective ⇑h.coeff
-- IsAdjoinRootMonic.isIntegral_root
theorem isIntegral_root (h : IsAdjoinRootMonic S f) : IsIntegral R h.root 
Arguments: {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : R[X]} [Algebra R S] (h : IsAdjoinRootMonic S f)
Goal: IsIntegral R h.root
-- IsAdjoinRoot.lift_self_apply
@[simp]
theorem lift_self_apply (h : IsAdjoinRoot S f) (x : S) :
    h.lift (algebraMap R S) h.root h.aeval_root x = x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} (h : IsAdjoinRoot S f) (x : S)
Goal: (IsAdjoinRoot.lift (algebraMap R S) h.root ⋯ h) x = x
-- IsAdjoinRoot.lift_self
theorem lift_self (h : IsAdjoinRoot S f) :
    h.lift (algebraMap R S) h.root h.aeval_root = RingHom.id S 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} (h : IsAdjoinRoot S f)
Goal: IsAdjoinRoot.lift (algebraMap R S) h.root ⋯ h = RingHom.id S
-- IsAdjoinRoot.aequiv_map
@[simp]
theorem aequiv_map (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot T f) (z : R[X]) :
    h.aequiv h' (h.map z) = h'.map z 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} {T : Type u_1} [CommRing T] [Algebra R T] (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot T f) (z : R[X])
Goal: (h.aequiv h') (h.map z) = h'.map z
-- IsAdjoinRoot.aequiv_root
@[simp]
theorem aequiv_root (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot T f) :
    h.aequiv h' h.root = h'.root 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} {T : Type u_1} [CommRing T] [Algebra R T] (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot T f)
Goal: (h.aequiv h') h.root = h'.root
-- IsAdjoinRoot.aequiv_self
@[simp]
theorem aequiv_self (h : IsAdjoinRoot S f) : h.aequiv h = AlgEquiv.refl 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} (h : IsAdjoinRoot S f)
Goal: h.aequiv h = AlgEquiv.refl
-- IsAdjoinRoot.aequiv_symm
@[simp]
theorem aequiv_symm (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot T f) :
    (h.aequiv h').symm = h'.aequiv h 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} {T : Type u_1} [CommRing T] [Algebra R T] (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot T f)
Goal: (h.aequiv h').symm = h'.aequiv h
-- IsAdjoinRoot.lift_aequiv
@[simp]
theorem lift_aequiv {U : Type*} [CommRing U] (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot T f)
    (i : R →+* U) (x hx z) : h'.lift i x hx (h.aequiv h' z) = h.lift i x hx z 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} {T : Type u_1} [CommRing T] [Algebra R T] {U : Type u_2} [CommRing U] (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot T f) (i : R →+* U) (x : U) (hx : Polynomial.eval₂ i x f = 0) (z : S)
Goal: (IsAdjoinRoot.lift i x hx h') ((h.aequiv h') z) = (IsAdjoinRoot.lift i x hx h) z
-- IsAdjoinRoot.liftHom_aequiv
@[simp]
theorem liftHom_aequiv {U : Type*} [CommRing U] [Algebra R U] (h : IsAdjoinRoot S f)
    (h' : IsAdjoinRoot T f) (x : U) (hx z) : h'.liftHom x hx (h.aequiv h' z) = h.liftHom x hx z 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} {T : Type u_1} [CommRing T] [Algebra R T] {U : Type u_2} [CommRing U] [Algebra R U] (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot T f) (x : U) (hx : (Polynomial.aeval x) f = 0) (z : S)
Goal: (IsAdjoinRoot.liftHom x hx h') ((h.aequiv h') z) = (IsAdjoinRoot.liftHom x hx h) z
-- IsAdjoinRoot.aequiv_aequiv
@[simp]
theorem aequiv_aequiv {U : Type*} [CommRing U] [Algebra R U] (h : IsAdjoinRoot S f)
    (h' : IsAdjoinRoot T f) (h'' : IsAdjoinRoot U f) (x) :
    (h'.aequiv h'') (h.aequiv h' x) = h.aequiv h'' x 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} {T : Type u_1} [CommRing T] [Algebra R T] {U : Type u_2} [CommRing U] [Algebra R U] (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot T f) (h'' : IsAdjoinRoot U f) (x : S)
Goal: (h'.aequiv h'') ((h.aequiv h') x) = (h.aequiv h'') x
-- IsAdjoinRoot.aequiv_trans
@[simp]
theorem aequiv_trans {U : Type*} [CommRing U] [Algebra R U] (h : IsAdjoinRoot S f)
    (h' : IsAdjoinRoot T f) (h'' : IsAdjoinRoot U f) :
    (h.aequiv h').trans (h'.aequiv h'') = h.aequiv h'' 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} {T : Type u_1} [CommRing T] [Algebra R T] {U : Type u_2} [CommRing U] [Algebra R U] (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot T f) (h'' : IsAdjoinRoot U f)
Goal: (h.aequiv h').trans (h'.aequiv h'') = h.aequiv h''
-- IsAdjoinRoot.ofEquiv_map_apply
@[simps! map_apply]
def ofEquiv (h : IsAdjoinRoot S f) (e : S ≃ₐ[R] T) : IsAdjoinRoot T f 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} {T : Type u_1} [CommRing T] [Algebra R T] (h : IsAdjoinRoot S f) (e : S ≃ₐ[R] T)
Goal: ∀ (a : R[X]), (h.ofEquiv e).map a = e (h.map a)
-- IsAdjoinRoot.ofEquiv_root
@[simp]
theorem ofEquiv_root (h : IsAdjoinRoot S f) (e : S ≃ₐ[R] T) : (h.ofEquiv e).root = e h.root 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} {T : Type u_1} [CommRing T] [Algebra R T] (h : IsAdjoinRoot S f) (e : S ≃ₐ[R] T)
Goal: (h.ofEquiv e).root = e h.root
-- IsAdjoinRoot.aequiv_ofEquiv
@[simp]
theorem aequiv_ofEquiv {U : Type*} [CommRing U] [Algebra R U] (h : IsAdjoinRoot S f)
    (h' : IsAdjoinRoot T f) (e : T ≃ₐ[R] U) : h.aequiv (h'.ofEquiv e) = (h.aequiv h').trans e 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} {T : Type u_1} [CommRing T] [Algebra R T] {U : Type u_2} [CommRing U] [Algebra R U] (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot T f) (e : T ≃ₐ[R] U)
Goal: h.aequiv (h'.ofEquiv e) = (h.aequiv h').trans e
-- IsAdjoinRoot.ofEquiv_aequiv
@[simp]
theorem ofEquiv_aequiv {U : Type*} [CommRing U] [Algebra R U] (h : IsAdjoinRoot S f)
    (h' : IsAdjoinRoot U f) (e : S ≃ₐ[R] T) :
    (h.ofEquiv e).aequiv h' = e.symm.trans (h.aequiv h') 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} {T : Type u_1} [CommRing T] [Algebra R T] {U : Type u_2} [CommRing U] [Algebra R U] (h : IsAdjoinRoot S f) (h' : IsAdjoinRoot U f) (e : S ≃ₐ[R] T)
Goal: (h.ofEquiv e).aequiv h' = e.symm.trans (h.aequiv h')
-- IsAdjoinRootMonic.minpoly_eq
theorem minpoly_eq [IsDomain R] [IsDomain S] [NoZeroSMulDivisors R S] [IsIntegrallyClosed R]
    (h : IsAdjoinRootMonic S f) (hirr : Irreducible f) : minpoly R h.root = f 
Arguments: {R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {f : R[X]} [IsDomain R] [IsDomain S] [NoZeroSMulDivisors R S] [IsIntegrallyClosed R] (h : IsAdjoinRootMonic S f) (hirr : Irreducible f)
Goal: minpoly R h.root = f